按下的虚拟按键根本就没有松开过,为什么还会event.getAction()==MotionEvent.ACTION_UP为true呢?
松都没有松开,为什么会去调用触发松开事件呢
不知道为什么,请大家指点?

解决方案 »

  1.   

    是用的android 模拟器吗,貌似那东西很不给力
      

  2.   


    不是!用的真机。真不知道MotionEvent是如何执行的?
    请指教?
      

  3.   

    用断点跟踪下,MotionEvent的getAction操作是针对某个view的
      

  4.   

    我是用的surfaceView,断点是打了。调试的执行循序是:ACTION_DOWN、
    ACTION_MOVE(执行3次后就自动跳动ACTION_UP了) 此时我的手还是没有抬起的,却还是调用ACTION_UP
    不信,你可以试试。
      

  5.   

    在命令行输入getevent去查看下事件。
      

  6.   

    谢谢你的回复!
    这和在断点调试getAction()获得的值又有什么区别吗?
    我主要想知道如何解决上面我所提出的问题
      

  7.   

    View 里面有个setLongClickable(boolean longClickable)的方法,意思是说是否要启用长按功能。
    true 是让设备支持长按,false是不支持。设为true的时候MotionEvent.ACTION_UP就能监听到了!
    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
         switch(event.getAction()){
         case MotionEvent.ACTION_UP:
             Log.d("MotionEvent", "ACTION_UP");
             break;
         case MotionEvent.ACTION_MOVE:
             Log.d("MotionEvent", "ACTION_MOVE");
             break;
         }
    }