在android中单击按钮时重启或刷新计时器

时间:2014-10-07 09:11:48

标签: java android

如何在每次点击按钮时重新启动计时器?这里给出了计时器设置的示例代码

new CountDownTimer(3000, 1000) {

         public void onTick(long millisUntilFinished) {
             //getSelectedAlphabet.setText(selectedIndex.getText());
         }

         public void onFinish() {
             //mTextField.setText("done!");
             getSelectedAlphabet.setVisibility(View.INVISIBLE);

             Log.d("Counter", "Finished....");

         }
      }.start();

3 个答案:

答案 0 :(得分:1)

试试这个

CountDownTimer cdt;
cdt = new CountDownTimer(3000, 1000) {

         public void onTick(long millisUntilFinished) {
             //getSelectedAlphabet.setText(selectedIndex.getText());
         }

         public void onFinish() {
             //mTextField.setText("done!");
             getSelectedAlphabet.setVisibility(View.INVISIBLE);

             Log.d("Counter", "Finished....");

         }
      }.start();

// to restart
cdt.cancel(); // to cancel
cdt.start(); //to start

答案 1 :(得分:1)

final CountDownTimer remainingTimeCounter = new CountDownTimer(3000, 1000) {
public void onTick(long millisUntilFinished) {
        }

        public void onFinish() {
            Log.d("Counter", "Finished....");
        }
    }.start();
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        remainingTimeCounter.cancel();
        remainingTimeCounter.start();
        }
    });

答案 2 :(得分:0)

    final CounterClass timer = new CounterClass(180000,1000); 

 button.setOnclickListener(new OnClickListener() {
               @Override
                public void onClick(View view) {
                      timer.start(); 
                }
         };

CounterClass -

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

    @Override
    public void onFinish() {
        System.out.println("finished");
    }


    @Override
    public void onTick(long millisUntilFinished) {
        long millis = millisUntilFinished;
        String hms = String.format(
                "%02d:%02d:%02d",
                TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(millis)
                        - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
                                .toHours(millis)),
                TimeUnit.MILLISECONDS.toSeconds(millis)
                        - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
                                .toMinutes(millis)));
        System.out.println(hms);

    }
}