Tôi đang làm việc trên một mô-đun điền vào giỏ hàng. Tôi đã sử dụng ListView
và mở rộng BaseAdapter
để điền các mục giỏ hàng. Với mỗi mục trong ListView
, tôi đã nhúng hai nút (inc và dec) vào số lượng tăng và giảm của mặt hàng trong giỏ hàng.Android- Các nút liền nhau trong chế độ xem danh sách được tự động nhấp vào
ListView
được cập nhật chính xác, nhưng nút tăng/giảm trên nhấp nhanh/khai thác thể hiện hành vi đột ngột.
Bất cứ khi nào tôi nhanh chóng khai thác bất kỳ inc hoặc nút Tháng Mười Hai, các inc tương ứng hoặc nút tháng mười hai của một mục bên cạnh mục hiện tại ListView
được tự động nhấp (cùng với btn mục hiện hành).
Nói cách khác, bất cứ khi nào tôi nhanh chóng nhấn inc btn của mục thứ i trong ListView
, inc btn của mục i + 1 trong ListView
được tự động nhấp (cùng với inc btn của mục thứ i).
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_cart, parent, false);
holder = new ViewHolder();
holder.baseItem = (TextView) convertView.findViewById(R.id.qnt_tv);
holder.qntInc = (TextView) convertView.findViewById(R.id.inc_btn);
holder.qntDec = (TextView) convertView.findViewById(R.id.dec_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final CartModel cm = mCart.get(position);
holder.baseItem.setText(cm.getmTitle());
holder.qntSel.setText(String.valueOf(cm.getmQnt()));
holder.qntInc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (qntSpinnerCb != null)
qntSpinnerCb.changeQuantityOfSelectedItemInCart(cm.getmIid(), INCREASE_QNT);
}
});
holder.qntDec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (qntSpinnerCb != null) {
qntSpinnerCb.changeQuantityOfSelectedItemInCart(cm.getmIid(), DECREASE_QNT);
}
}
});
return convertView;
}
Interface cho callback
public interface CartQntSpinnerListenerCallBack {
void changeQuantityOfSelectedItemInCart(String iId, char changeType);
}
Cố gắng gỡ lỗi, không thể tìm ra hành vi kỳ lạ này.
Bạn nhấn mạnh cụm từ "nhấn nhanh". Vì vậy, khi bạn nhấn các nút từ từ hoặc chỉ khi mục lân cận không được nhấp? – Androidicus
"baseItem" có chiều rộng cố định không? Vị trí của nút Inc/Dec có thể thay đổi sau khi changeQuantityOfSelectedItemInCart() và nó gây ra hành vi đột ngột .. Tôi đoán vậy. (Hoặc khai thác trong khi thay đổi bố cục) – Toris
Thêm mã cho 'qntSpinnerCb' và bất kỳ mã nào đang chạm vào. Các trường hợp 'OnClickListener()' có vẻ hợp lý. –