У меня проблема с потоком моего приложения.listview onclick listerner дает неправильную позицию строки
У меня есть один ListView в одном из наших фрагментов. Мы создали один пользовательский адаптер для заполнения данных из web-сервиса с помощью JSON. (который расширяет BaseAdapter)
Он имеет другие компоненты, такие как EditText и кнопки, когда я устанавливаю OnClick.
Мы создали OnClickListerner(), который работает правильно для данных. Но я хочу получить следующий элемент в той же строке. Значение позиции задает объект неправильной строки.
Образец кода, который я написал для этого. Пожалуйста, проверьте, не совершил ли я ошибку при звонке. (Я получаю данные правильно из массива, но сам объект приходит не так).
add_to_cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
int p = position;
Integer pos = (Integer) arg0.getTag();
SKU_CODE = data.get(pos).get("sku_code");
SKU_NAME = data.get(pos).get("sku_name");
sp = PreferenceManager.getDefaultSharedPreferences(activity);
LOGGED = sp.getBoolean("LOGGED", false);
USER_ID = sp.getString("USER_ID", "");
STORE_CODE = sp.getString("STORE_CODE", "985");
url = "http://foodworld.in/android-api/add_item_to_cart.php";
//Toast.makeText(activity, url, Toast.LENGTH_SHORT).show();
Log.d("add to cart ur: ", url);
add_to_cart.setVisibility(View.GONE);
//qty_change_row.setTag(pos);
qty_change_row.setVisibility(View.VISIBLE);
AddItemToShoppingCart newTask = new AddItemToShoppingCart(arg0, pos);
newTask.execute();
}
});
В этом коде есть «add_to_cart_row». Это линейная компоновка с идентификатором, на который мы ссылаемся. Я пытался настроить видимость, но он не работает; он устанавливает для неправильного объекта (объект в другой строке на экране).
На скриншоте прилагается, я нажал на кнопку «Добавить в корзину». Он активировал элемент в последней строке (+ - текстовое поле).
Это была моя проблема. Пожалуйста, помогите мне.
если вы используете 'ListView' то есть 'OnItemClickListener', который предоставляет элемент' position' – Xcihnegn