我在列表視圖的行內有一個按鈕。我想檢測它的onClick事件並在行上的位置(哪一行被點擊)。按鈕onClick在視圖模式列表視圖中獲取錯誤的位置
我目前的代碼正在工作,但它觸發了錯誤的行。所以例如,如果我點擊第一行,最後一行將被解僱。
這是我getView:
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if(convertView == null)
{
convertView = LayoutInflater.from(context)
.inflate(R.layout.item_cart, parent, false);
holder = new CartHolder(convertView);
convertView.setTag(holder);
}
else
{
holder = (CartHolder) convertView.getTag();
}
holder.btnCartAddQty.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//WRONG POSITION
getItem(position).setQty((Integer.parseInt(getItem(position).getQty())+1)+"");
holder.txtCartQty.setText(getItem(position).getQty());
}
});
哪裏我做錯了什麼?
更新1
做一些調試後,這似乎位置正確檢測但setText
目標是錯誤的
所以罪魁禍首是在這行代碼:
holder.txtCartQty.setText(getItem(position).getQty());
該代碼始終以holder.txtCartQty
的最後一行作爲目標
任何幫助表示讚賞,提前
爲什麼這是最終的int位置這個 –
你是否將對象返回到getItem(int i)? – Sach
是的,它返回一個對象 –