Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何增加倒计时时间?_Java_Android_Timer_Countdowntimer - Fatal编程技术网

Java 如何增加倒计时时间?

Java 如何增加倒计时时间?,java,android,timer,countdowntimer,Java,Android,Timer,Countdowntimer,我想写一个游戏,玩家有20秒的时间玩。一个计时器在游戏开始时启动,若计时器达到0,则玩家松开。若玩家按下正确答案的按钮,我希望时间增加3秒。但我不知道当玩家点击正确答案时,如何在倒计时中添加时间。我什么都试过了,但找不到办法。如果有其他方法可以实现这一点,请告诉我。谢谢更改代码如下: public void counter(){ new CountDownTimer(20000, 1000){ @Override public vo

我想写一个游戏,玩家有20秒的时间玩。一个计时器在游戏开始时启动,若计时器达到0,则玩家松开。若玩家按下正确答案的按钮,我希望时间增加3秒。但我不知道当玩家点击正确答案时,如何在倒计时中添加时间。我什么都试过了,但找不到办法。如果有其他方法可以实现这一点,请告诉我。谢谢

更改代码如下:

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();
    }
最后一件事是:

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();
}

每次用户按下正确的应答按钮时。希望这会有帮助

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

globalCount += 3000;

我怀疑,您可以使用

可能重复的感谢Zohaib获得完整的代码。globalCount将如何更新millisUntilFinished的值??因为进度条也在使用millisUntilFinished。您的globalCount将从用户点击正确答案的方法更新。它将从那里获得价值。millisUntilFinished是根据timeCount和每次迭代的1000自动计算的值。别担心,试试看。会有用的!
            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);

            }

        }