0
lstviewBlockedVenues.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> obj, View arg1, int pos,
                long arg3) {


            Data.currVenueInfo = (VenueInfo) obj.getItemAtPosition(pos);
            String venueList = "";

            if(swipeDetector.swipeDetected())
            {

                try {
                    Button btnBlock = (Button) arg1.findViewById(R.id.btnBlockVen); 
                    Toasts.pop(getApplicationContext(), "Swiped");
                    System.out.println(btnBlock.getVisibility());

                        if(btnBlock.getVisibility() != View.VISIBLE)
                        {
                            btnBlock.setVisibility(View.VISIBLE);
                        }
                        else
                        {
                            btnBlock.setVisibility(View.GONE);                                                                          
                        }

                    System.out.println("Inside swipe");
                } catch (Exception e) {

                    e.printStackTrace();
                }



            }
        }
    });

上記のコードでは、ユーザーが行をスワイプしたときに1つの行にボタンを表示しようとしています。最初、ボタンの可視性はなくなりました。初めて任意の行をスワイプすると、それは完璧に機能し、その行のボタンが表示されます。しかし、同じ行をもう一度スワイプすると、書いたコードに従ってボタンが消えるはずですが、次に行をスワイプすると、スワイプイベントが検出されますが、コードは実行されません:(。btnBlock.setVisibility(View.VISIBLE); and btnBlock.setVisibility(View.VISIBLE);次に、トーストメッセージとログキャットメッセージが表示されます。2回目に機能しない理由がわかりません。

ありがとう

4

1 に答える 1

2

リストビューの行にフォーカスを持たせないため、そのボタンのフォーカス可能をFALSEに変更します。

于 2012-04-06T13:05:06.540 に答える