0

我正在使用可穿戴设备,并且正在为它制作应用程序。当我单击开始按钮时,我有一个计时器和其他一些东西。事情是开始按钮占用了一些空间,使事情看起来很拥挤。我使用了一个可穿戴动作抽屉,但它看起来不太好,所以我求助于使用 onTouchlistner 和放置我的对象(如计时器)的视图。

布局是 FrameLayout。现在,当我使用 onTouchListner 时,我检测到的 MotionEvent 是 ACTION_DOWN 我如何计算这种情况发生 2 次以启动我想要启动的任何内容,当它是 4 次时我调用我的 AlertDialog?

frameLayout = (FrameLayout)findViewById(R.id.myscreen);
    frameLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int x = (int) event.getX();
            int y = (int) event.getY();
            clicked = clicked + 1;
            if(event.getAction() == MotionEvent.ACTION_DOWN)
            {
                startTimer();
                //Check flow rate
                if(num == 450)
                {
                    try {
                        flow.setText(String.valueOf(num));
                        progressBar.setIndeterminateDrawable(Circle);
                        progressBar.setVisibility(View.VISIBLE);
                    } catch (NullPointerException e) {
                        e.printStackTrace();
                    }
                }
                else if(num == 150)
                {
                    try {
                        flow.setText(String.valueOf(num));
                        progressBar.setIndeterminateDrawable(Circle);
                        progressBar.setVisibility(View.VISIBLE);
                    } catch (NullPointerException e) {
                        e.printStackTrace();
                    }

                }

            }
            else if(event.getAction() == MotionEvent.ACTION_DOWN && clicked == 4)
            {

                Handler mHandler = new Handler(Looper.getMainLooper());
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        // Your UI updates here
                        AlertMessage();
                    }
                });

            }

            return true;
        }
    });

clicked是一个由零初始化的整数,我在使用按钮计算点击次数时使用了它。我现在想计算点击屏幕的次数,所以如果点击 2 次 ----> 如果点击 4 次则开始 -------> 调用 AlertDialog

4

1 回答 1

2

if(event.getAction() == MotionEvent.ACTION_DOWN)将计数器增量逻辑与 if子句中的计数器检查逻辑一起移动。

frameLayout = (FrameLayout)findViewById(R.id.myscreen);
    frameLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int x = (int) event.getX();
            int y = (int) event.getY();
            if(event.getAction() == MotionEvent.ACTION_DOWN)
            {
                if(clicked == 4)
                {
                    Handler mHandler = new Handler(Looper.getMainLooper());
                    mHandler.post(new Runnable() {
                        @Override
                        public void run() {
                            // Your UI updates here
                            AlertMessage();
                        }
                    });
                    return true;
                }
                clicked = clicked + 1;
                startTimer();
                ....
            }    
            return true;
        }
    });
于 2021-01-10T14:03:47.870 回答