В вашем коде может быть ошибка:
Вы переопределяете finalCommodityValue
:
finalCommodityValue = 0;
if(argument < 26){
double finalCommodityValue = argument + 1.00;
}
Это ошибка компиляции, поскольку внутри функции не может быть более одной переменной с одинаковым именем.
Теперь, если переменная finalCommodityValue
определена вне функции, содержащей приведенный здесь код, то вы затеняет< /а> это. Это означает, что finalCommodityValue
внутри вашего оператора if (argument < 26)
отличается от finalCommodityValue
, который вы определили вне всей вашей функции. В некотором смысле это скрывает значение, определенное вне вашей функции.
Кроме того, создание переменной внутри оператора if
приводит к тому, что она существует только в рамках оператора if
(между {}
). Вы не используете его ни для чего в своем коде.
Я предполагаю, что у вас не было ошибки компиляции, поскольку вы можете отлаживать работу своего кода. Это означает, что finalCommodityValue
определяется как поле класса. Таким образом, вам нужно удалить double
:
finalCommodityValue = 0;
if(argument < 26){
finalCommodityValue = argument + 1.00;
}
Теперь finalCommodityValue
в вашей функции и в операторе if
соответствует одному и тому же finalCommodityValue
, определенному глобально в вашем классе.
Что касается того, почему arg2
всегда равно 0, я считаю, что ваша проблема:
mCommCode = (AutoCompleteTextView) findViewById(R.id.CommCode);
Вы используете OnItemClickListener
в AutoCompleteTextView
. AutoCompleteTextView
— это TextView, поэтому он имеет только один элемент. Вот почему вы всегда получаете позицию 0. Вместо этого вам нужно использовать ListView
.
В вашем XML-файле у вас должно быть что-то вроде этого:
<AutoCompleteTextView
android:id="@+id/tvAutocomplete"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="15"
android:hint="@string/search_hint" >
<requestFocus />
</AutoCompleteTextView>
<ListView
android:id="@+id/lvDataList"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="85" >
</ListView>
Далее создайте переменную класса:
ListView searchList;
И в onCreate()
:
searchList = (ListView) findViewById(R.id.lvDataList);
Затем в функции, содержащей показанный здесь код, поместите OnItemClickListener
на ListView
, а не на AutoCompleteTextView
:
searchList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
Log.d("POSITION", position);
// .. Rest of your code
}
});
person
nem035
schedule
11.09.2014