倒数计时器按下按钮继续开始

时间:2012-08-17 20:00:02

标签: android

好的,所以我有一个倒数计时器,我的应用程序要求用户多次点击一个按钮,但计时器开始按下该按钮。我的问题是:

我有一个10秒的倒数计时器,从按下按钮开始,但不是只是继续下降到0,每次用户点击按钮时它都会重新开始。当用户第一次点击它时,我该怎么做呢,它会继续倒计时?

我的代码:

private Button tapBtn;
TextView cm;

tapBtn = (Button) findViewById(R.id.Tap);
cm = (TextView) findViewById(R.id.Timer);

final CountDownTimer aCounter = new CountDownTimer(10000, 1000) {

         public void onTick(long millisUntilFinished) {
            cm.setText("Time Left: " + millisUntilFinished / 1000);
         }

         public void onFinish() {
             cm.setText("Time's Up!");
         }
      };
      aCounter.cancel();

tapBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            scr = scr - 1;
            TextView Score = (TextView) findViewById(R.id.Score);
            Score.setText(String.valueOf(scr));
            aCounter.start();
        }
    });
}

2 个答案:

答案 0 :(得分:1)

你是否试图这样做,如果用户已经启动了计时器,后续按下按钮不会从第一次点击重启?如果是这样,你应该做的只是在你的onclick上放一个if语句来检查计时器是否仍在倒计时,即检查并查看计数器上当前时间是否大于0。

编辑:这是代码

final CountDownTimer aCounter = new CountDownTimer(10000, 1000) {

         private long timeLeft;

         public long getTimeLeft() {
            return timeLeft;
         }

         public void onTick(long millisUntilFinished) {
            timeLeft = millisUntilFinished / 1000;

            cm.setText("Time Left: " + timeLeft);

         }

         public void onFinish() {
             cm.setText("Time's Up!");
         }
      };
      aCounter.cancel();

tapBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (aCounter.getTimeLeft() == 0) {
               scr = scr - 1;
               TextView Score = (TextView) findViewById(R.id.Score);
               Score.setText(String.valueOf(scr));
               aCounter.start();
            }
        }
    });
}

答案 1 :(得分:0)

这样做的一种方法是创建一个在第一次点击时设置的标志,并让onclick事件在第一次单击时翻转标志,并将计时器启动放在if语句中,只有当标志没有时才会出现没定。