尽管我是Android的新手,但我感觉比以往任何时候都更加努力。 我的视图扩展了SurfaceView,在那里我重写onTouchEvent并将这个测试代码放在里面:
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
return true;
}
return false;
然后当我在调试模式下在模拟器中运行应用程序(使用Eclipse)时,我无法使其返回true。我点击,继续点击并拖动,然后释放,但无论如何,它始终是event.getAction == 0。
我错过了什么?
答案 0 :(得分:2)
您应该在“OnTouchEvent”方法中返回“true”以避免此问题。
答案 1 :(得分:0)
getAction()
返回实际操作标志和生成该事件的指针索引的组合(用于多点触控)。
要只使用操作部分,您可以使用MotionEvent.ACTION_MASK
执行AND:
if (event.getAction() & MotionEvent.ACTION_MASK ==
MotionEvent.ACTION_MOVE) { ...
如果您使用API> = 8,则可以直接使用getActionMasked()
。如果您必须在switch
中进行测试,这非常有用。
<强> similar question here 强>