我无法想办法只为一个onClick监听器保留一个CountdownTimer。基本上我有一个应用程序,6个按钮,每次你按下其中一个按钮,它开始倒计时相应的按钮文本。但是,我只希望最近的倒计时由OnClick开始,每个按钮运行并更新按钮上的文本。
这是我到目前为止的代码......它有效,但倒计时开始相互“战斗”,改变了按钮的文本。是否有一种方法可以在每次注册OnClick时,销毁/忽略先前按钮点击创建的任何倒计时?
oBlue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Button was clicked so start our count down
CountDownTimer blueTime = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
String s = String.valueOf(millisUntilFinished / 1000);
oBlue.setText(s);
}
public void onFinish() {
oBlue.setText(String.valueOf(300));
}
}.start();
答案 0 :(得分:0)
用内部类替换计数器变量,这样就不需要每次都创建计数器变量。只需创建一个时间计数器变量,并在每个按钮重新启动计数器时调用它的开头。
居:
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
//输入您的代码