0

私は ListView を持っており、everubody listItem にはボタンがあります。imageView の最初のクリックでイベントを取得できませんが、最初に 2 回目にクリックするとイベントが取得されます。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();
            }
        });
    }
}
4

1 に答える 1

0

ListView onItemClickListener() 内の ImageViews に onClickListener() を設定しているためです。

したがって、ユーザーがリスト内の項目を選択すると、ImageViews の onClickListener が割り当てられます。2 回目は、ImageView の onclick リスナーが正常に起動されます。

この問題を回避するには、カスタム アダプター内で個別の ImageView onClickListeners を割り当て、ユーザーがリスト内のアイテムをクリックしたときではなく、ビューに入ったときに割り当てられるようにします。

于 2013-07-02T23:55:13.393 に答える