gpt4 book ai didi

java - 第二次开始时停止第一次倒计时

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:33 25 4
gpt4 key购买 nike

我有一个问题。
当我的 Activity 开始时,第一个倒计时正在运行。
我想做的是,当我按下按钮时停止第一个倒计时,然后运行第二个倒计时。
第二部分有效,但我不知道如何停止第一个倒计时。
它不会被任何 Button 调用,但会在 Activity 启动时启动。

我希望你明白我在说什么。
抱歉我的英语不好。

这是我的代码:

Button finnish;
TextView letter;
TextView textViewState, textVievCity, textViewRiver, textViewPlant, textViewAnimal, textViewName;
EditText editTextState, editTextCity, editTextRiver, editTextPlant, editTextAnimal, editTextName;
TextView textViewAnswer1, textViewAnswer2, textViewAnswer3, textViewAnswer4, textViewAnswer5, textViewAnswer6;
TextView timer, timer1;
public int counter = 120;
public int finalCounter = 10;
public int counterStop = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);

Button finnish = (Button) findViewById(R.id.buttonFinnished);
finnish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


final TextView timer1 = (TextView) findViewById(R.id.textViewFinalCOunter);
new CountDownTimer(10000, 1000) {

@Override
public void onTick(long millisUntilFinished) {
timer1.setText(String.valueOf(finalCounter));
finalCounter--;


}

@Override
public void onFinish() {
timer1.setText("koniec rundy");
}
}.start();
}
});
TextView letter = (TextView) findViewById(R.id.textViewLetter);
final String[] letters = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "ł", "m", "n", "o", "p", "r", "s", "t", "u", "w", "z"};
int random = (int) (Math.random() * 23);
letter.setText(letters[random]);

final TextView timer = (TextView) findViewById(R.id.textViewTimer);



new CountDownTimer(120000, 1000) {

@Override
public void onTick(long millisUntilFinished) {
if (timer1 != null) {
timer.setText(String.valueOf(counterStop));
} else {

timer.setText(String.valueOf(counter));
counter--;
}
}

@Override
public void onFinish() {
timer.setText("koniec rundy");
}
}.start();

}
}

最佳答案

如果您想停止它,则需要存储对 CountDownTimer 的引用

private CountDownTimer firstCountDown;

firstCountDown = new CountDownTimer(120000, 1000){...};

然后您可以通过在按钮的 ClickListener 中使用 CountDownTimer#cancel() 调用它来取消第一次倒计时。像这样

@Override
public void onClick(View v) {
firstCountDown.cancel()
...
}

关于java - 第二次开始时停止第一次倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46586932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com