如何只运行一个OnClick倒数计时器?

时间:2013-11-24 18:55:51

标签: android onclick countdowntimer

我无法想办法只为一个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();

1 个答案:

答案 0 :(得分:0)

用内部类替换计数器变量,这样就不需要每次都创建计数器变量。只需创建一个时间计数器变量,并在每个按钮重新启动计数器时调用它的开头。

居:

public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
    super(millisInFuture, countDownInterval);
}

//输入您的代码