Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android视图中双击_Java_Android_Android Gesture_Actionevent - Fatal编程技术网

Java 在android视图中双击

Java 在android视图中双击,java,android,android-gesture,actionevent,Java,Android,Android Gesture,Actionevent,在视图中,我想同时检测单抽头和双抽头。它对我很管用。我可以检测到单点和双点。请找到我的密码 @Override public boolean onTouch(View view, MotionEvent me) { // No dragging during animation at the moment. // TODO: Stop animation on touch event and return to drag mode. boo

在视图中,我想同时检测单抽头和双抽头。它对我很管用。我可以检测到单点和双点。请找到我的密码

@Override
    public boolean onTouch(View view, MotionEvent me) {
        // No dragging during animation at the moment.
        // TODO: Stop animation on touch event and return to drag mode.
        boolean result = true;
        result = gestureDetector.onTouchEvent(me);//return the double tap events
        if(result)
            return false;

switch (me.getAction()) {
        case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
}


private class GestureListener extends GestureDetector.SimpleOnGestureListener {

        private String fileName;



        @Override
         public boolean onSingleTapConfirmed(MotionEvent e) {
          // TODO Auto-generated method stub

          return false;
         }

        // event when double tap occurs
        @Override
        public boolean onDoubleTap(MotionEvent e) {

            float x = e.getX();
                float y = e.getY();
                if(player!=null && player.isPlaying())
                {
                    player.stop();
                }
                else
                {
                    setFileName(x);
                    player = new AudioPlayer(fileName);
                    player.play();
                }


            return true;
        }


    }
我正在做一些代码在行动起来的事件。因此,即使我进行双击,对于第一次点击,也会调用ACTION_UP事件并执行相应的代码。我想阻止这种事情发生。我怎样才能做到这一点。我只是想确保只有当用户完成手势时才会调用ACTION_UP。不是在他做了一个偏袒的手势之后。在这种情况下,它会在第一次点击时被调用

我如何在android中实现这一点


谢谢

根据手势监听器,您需要为SingleTapConfiged和onDoubleTap返回true。否则,该事件不会被消耗,并且
gesturedector.onTouchEvent(me)返回false。

您的问题没有太多意义。虽然您不能更改
运动事件
,但您可以进行更改,例如,每次按下/触摸时,它都会计算自上次按下后的时间,然后根据该时间执行不同的操作。检查我更新的答案;我相信您在
onXTap
函数中返回了错误的值。他在
onSingleTapConfirmed
中返回的值与
gesturedetor
返回的值不同。这就是为什么我说我对此不确定。我应该把它作为评论发布……我检查了文档,似乎SingletAPconfirm和onDoubleTap返回了错误的值。