java Android中给定时间内的按钮点击次数

6l7fqoea  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(146)

我正在开发一个应用程序,它使用音量按钮点击来触发一个动作。如果用户在给定的时间内点击音量按钮5次,那么一个功能将被触发。
现在我需要一个代码来检查用户是否在给定时间内点击了音量按钮5次。时间应该是毫秒

thtygnil

thtygnil1#

下面的代码可能是解决这个问题的一个好方法。它可能不是最好的,但是只要它工作,它就是好的

int timesPressed = 0;
    boolean timesUp = false;
    long millisInFuture = 5000; //ms until countdown stops
    long countDownInterval = 50; //the rate at which countdown ticks (here, once every 50 ms)
    public CountDownTimer countDownTimer = new CountDownTimer(millisInFuture, countDownInterval) {
        @Override
        public void onTick(long millisUntilFinished) {
            return;
        }
        @Override
        public void onFinish() {
            timesUp = true;
            timesPressed = 0;
        }
    };
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){
            timesPressed++;
            countDownTimer.start();

            if (!timesUp && timesPressed == 5) { 
                countDownTimer.cancel(); //stops timer
                timesUp = false; 
                timesPressed = 0;
                doStuff(); //execute your function
            }
        }
        return true;
    }

相关问题