如何在每次点击按钮时重新启动计时器?这里给出了计时器设置的示例代码
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();
答案 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);
}
}