代码块仅在OnItemClickListener中运行一次

时间:2012-04-06 11:11:00

标签: android codeblocks

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();
                }



            }
        }
    });

在上面的代码中,我试图在用户滑动行时在单行上显示一个按钮。最初按钮的可见性消失了。当我第一次在任何一行上滑动时,它完美地工作并且该行的按钮变得可见。但是,如果我再次刷同一行,那么按钮应该按照我编写的代码消失,但是当我下次滑动行时,会检测到滑动事件,但代码不会执行:(。但如果我删除了行btnBlock.setVisibility(View.VISIBLE); and btnBlock.setVisibility(View.VISIBLE);然后显示toast msg和logcat msg。我不知道为什么它第二次没有工作。

由于

1 个答案:

答案 0 :(得分:2)

将该按钮的焦点更改为FALSE,因为它不允许列表视图行具有焦点。