第二次启动时停止第一次倒计时
问题描述:
我有问题。
当我的活动开始时,第一个倒计时正在运行。
我想要做的是停止第一次倒计时,当我按下按钮,然后第二次倒计时运行。
第二部分工作,但我不知道我怎么能阻止第一个倒计时。
它不被任何按钮调用,但它在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()
...
}
好吧,我理解,但现在我怎么可以把结果形成“firstCountDown”成的TextView就像我之前想要做的一样? – MichalG
@MichalG你可以使用'TextView'并通过调用'timer.getText()'从那里得到它。 –