ListView上的onTouch,更改项目的颜色

时间:2012-10-24 11:42:46

标签: android

我的Android应用程序中有一个自定义listview。当用户按下列表中的项目时,我想更改按下的项目的背景颜色。这是该行为的代码:

tempView.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View arg0, MotionEvent event) {

                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    isDown = false;
                    tempView.setBackgroundColor(Color.parseColor("#f47920"));

                }

                if (event.getAction() == MotionEvent.ACTION_UP) {
                    tempView.setBackgroundResource(R.drawable.list_selector_focused);
                }

                if(event.getAction() == MotionEvent.ACTION_MOVE) {
                    tempView.setBackgroundResource(R.drawable.list_selector_focused);
                }


                return false;
            }
        }); 

但是当我在屏幕上“甩动”以滚动listview时,也会标记一个项目,并且“按下”的颜色将是静态的。我怎么能避免这个?

1 个答案:

答案 0 :(得分:1)

除非您从MotionEvent.ACTION_UP返回true以通知Android系统您处理了整个触摸事件,否则

onTouch()将不会被捕获。