在ACTION_MOVE之后,Android ACTION_UP不会被触发

时间:2013-11-12 14:58:00

标签: java android ontouchevent ontouchlistener motionevent

我正在尝试以编程方式创建视图,并根据其点击状态更改其背景。

我知道我可以用xml drawables做到这一点,但我也想学习编程。

但是,如果我按下我的视图,然后滑动我的手指,视图就会处于按下状态。 (白= 0xaaffffff背景)

我的代码是:

编辑:

我解决了这个问题。这是工作代码:

mainContainer.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {             
            // TODO Auto-generated method stub

            int action = event.getAction();
            if (action==MotionEvent.ACTION_DOWN)
            {
                v.setBackgroundColor(0xaaffffff);                   
                return false;
            }               

            if(action==MotionEvent.ACTION_MOVE)
            {                   

            }

            if(action==MotionEvent.ACTION_CANCEL)
            {                  
                v.setBackgroundColor(0x00ffffff);
            }

            if (action==MotionEvent.ACTION_UP)
            {               
                v.setBackgroundColor(0x00ffffff);                   
                return true;
            }


            return false;

        }
    });

如您所见,我尝试在我希望再次调用onTouch()的任何地方返回true。但显然这里有一些我不明白的东西。

我做错了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果在你的ACTION_UP中返回true呢?

if (action==MotionEvent.ACTION_UP)

    {               
      v.setBackgroundColor(0x00ffffff);
      return true;
    }