如何让一个按钮创建一个倒数计时器,然后再点击它再次为计时器添加时间?

时间:2017-12-06 21:39:34

标签: java timer countdowntimer

我已经有了这个按钮,当它被点击时会创建一个计时器。

问题是,它每次点击都会创建一个计时器。

我希望这个按钮的作用是在初始点击时创建一个计时器,然后在所有后续点击上添加五秒钟到 myTime 变量,直到计时器用完为止。

我该如何解决这个问题?

这是单击该按钮时执行的代码:

    myTime = myTime + 5000
    new CountDownTimer(myTime, 1000) {

        public void onTick(long millisUntilFinished) {
            myButton.setText("seconds remaining: " + millisUntilFinished / 1000);
        }

        public void onFinish() {
            myButton.setText("done!");
        }
    }.start();

1 个答案:

答案 0 :(得分:0)

您需要删除计时器并重新启动它。捕获最后一个刻度的毫秒数,并将其添加5秒。缩小刻度,这样就不会浪费很多时间。

CountDownTimer myTimer = null;
long myTime = STARTING_TIME_IN_MILLIS;
...
// In the button click action performed event

if (myTimer != null) {
    myTimer.cancel();  // Cancel the existing timer
    myTime = myTime + 5000;  // Add five seconds to the remaining time.
}
// Start a new timer with the remaining time as the starting point.
myTimer = new CountDownTimer(myTime, 100) {
        public void onTick(long millisUntilFinished) {
            myButton.setText("seconds remaining: " + millisUntilFinished / 1000);
            // Save the remaining time
            myTime = millisUntilFinished;
        }

        public void onFinish() {
            myButton.setText("done!");
        }
}.start();