【问题标题】:How to detect a long touch to the screen of an android smart watch?如何检测对安卓智能手表屏幕的长按?
【发布时间】:2021-02-08 21:41:54
【问题描述】:

我基本上想检测对我的 frameLayout 的长触摸,一旦检测到,我将调用我在方法中的警报消息。

    frameLayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN)
                {
                    first_tap = System.currentTimeMillis();
                    clicked = clicked + 1;
                    if (clicked == 2)
                    {
                        Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
                        startTimer();
                    }
//                    else if (flag == 1)
//                    {
//                        Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
//                        AlertMessage();
//                        flag = 0;
//                    }
                }

                return true;
            }
        });

我的活动包含一个计时器,我通过双击屏幕开始,但我不想再次双击作为警报消息的触发器,我只想长时间触摸屏幕,然后触发我制作的警报对话框。那我该怎么做呢?

【问题讨论】:

    标签: android wear-os ontouchlistener wearables


    【解决方案1】:

    我建议您将当前的 OnTouchListener 代码替换为 GestureDetectorSimpleOnGestureListener。开箱即用,支持双击和长按。

    你所要做的就是这样:

    GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
    
        public void onDoubleTap(MotionEvent e) {
            startTimer();
        }
    
        public void onLongPress(MotionEvent e) {
            alertMessage();
        }
    });
    
    public boolean onTouchEvent(MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    };
    

    有关如何将 GestureDetector 添加到视图的更多详细信息,您可以查看this post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      相关资源
      最近更新 更多