我有ListView,而everubody listItem有一个按钮。 我不能在第一次点击imageView时获得活动,但是在我第一次点击第二次后我得到了活动。为什么我第一次点击imageView时无法得到答案?
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view, final int position, long id) {
ImageView addLarge = (ImageView) view.findViewById(R.id.addLargeImage);
ImageView addSmall = (ImageView) view.findViewById(R.id.addSmallImage);
addLarge.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
addProductToCart = true;
addToOrderListClick = true;
OrderProduct order = new OrderProduct(listProductId.get(position), listProductName.get(position),
listProductNameEn.get(position), listProductImageUrl.get(position), "large", listProductPriceLarge.get(position));
orderListProduct.add(order);
animCopyListItemAddToCart(view, position, mainRelativeLaout);
Toast.makeText(getBaseContext(), "AddLarge", Toast.LENGTH_SHORT).show();
}
});
addSmall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
addProductToCart = true;
addToOrderListClick = true;
OrderProduct order = new OrderProduct(listProductId.get(position), listProductName.get(position),
listProductNameEn.get(position), listProductImageUrl.get(position), "small", listProductPriceSmall.get(position));
orderListProduct.add(order);
animCopyListItemAddToCart(view, position, mainRelativeLaout);
Toast.makeText(getBaseContext(), "addSmall", Toast.LENGTH_SHORT).show();
}
});
}
}
答案 0 :(得分:0)
因为您在ListView onItemClickListener()中为ImageViews设置了onClickListener()。
因此,用户选择列表中的项目,然后才会为您的ImageViews分配onClickListener。所以第二次,ImageView的onclick监听器被成功触发。
要解决此问题,请在自定义适配器中分配单个ImageView onClickListeners,以便在它们进入视图时分配它们,而不是在用户单击列表中的项目时分配。