getAction()只给出ACTION_DOWN

时间:2011-05-12 11:43:12

标签: java android

对于我正在写的应用程序,我想在用户将手指从屏幕上抬起后调用某个动作。我知道我需要检查event.getAction()是否为ACTION_UP,但我从getAction()获得的是ACTION_DOWN。我的代码如下所示:

menu = new MenuView(this);
        menu.setBackgroundColor(Color.WHITE);
        menu.setKeepScreenOn(true);
...
setContentView(menu);
 menu.requestFocus();
...
public class MenuView extends View
{
...
public MenuView(Context context) 
    {
        super(context);
        setFocusable(true);
    }

有谁知道问题的原因是什么?

提前谢谢。

1 个答案:

答案 0 :(得分:13)

确保onTouch返回true,告诉你的侦听器操作触摸事件。

来自docs:onTouch() - 返回一个布尔值来指示你的监听器是否使用了这个事件。重要的是这个事件可以有多个相互跟随的动作。因此,如果在收到向下操作事件时返回false,则表示您尚未使用该事件,并且对此事件的后续操作也不感兴趣。因此,您不会在活动中调用任何其他操作,例如手指手势,或最终的上行动作事件。

http://developer.android.com/reference/android/view/View.html#onTouchEvent%28android.view.MotionEvent%29