如何增加倒数计时器的时间?

时间:2017-05-20 11:21:42

标签: java android timer countdowntimer

public void counter(){
        new CountDownTimer(20000, 1000){
            @Override
            public void onTick(long millisUntilFinished) {
                progressBar.setProgress(Integer.parseInt(String.valueOf(millisUntilFinished/1000)));

            }

            @Override
            public void onFinish() {
                gameOver();

            }
        }.start();
    }

我正在尝试编写一个玩家可以玩20秒的游戏。计时器在比赛开始时开始,如果计时器达到0,则球员失去。如果玩家按下正确答案的按钮,我希望时间增加3秒。但是,当玩家遇到正确的答案时,我不知道如何在倒数计时器中添加时间。我尝试了一切,但找不到办法。如果还有其他方法可以实现这一目标,请告诉我。谢谢

2 个答案:

答案 0 :(得分:0)

更改您的代码:

private int globalCount = 0; // Initialize this in Global scope of class.

public void counter(int timeCount){

globalCount = 0; 

    new CountDownTimer(timeCount, 1000){
        @Override
        public void onTick(long millisUntilFinished) {
            progressBar.setProgress(Integer.parseInt(String.valueOf(millisUntilFinished/1000)));

        }

        @Override
        public void onFinish() {
         if (globalCount == 0) {
            gameOver();
          } else {
           conter(globalCount);
            }

        }
    }.start();
}

你要做的最后一件事是:

globalCount += 3000;

每次用户按下正确的答案按钮。希望这会有所帮助!

答案 1 :(得分:0)

在Android中,正常的倒数计时器用于降低顺序。因此您可以在正常的if-else条件下使用逻辑。

            if (sec==59){
                sec = 0;
                min = min+1;
                String text = String.format(Locale.getDefault(),"%02d min: %02d sec",min,sec);
                editText.setText(text);

            }else {
                sec = sec+1;
                String text = String.format(Locale.getDefault(),"%02d min: %02d sec",min,sec);
                editText.setText(text);

            }

        }

您可以使用this blog

获取完整的代码
相关问题