![](/img/trans.png)
[英]How to implement CountDownTimer reducing time functionality in Android
[英]how to display the end and start time android countdowntimer
当我运行以下代码时,我无法在每次计时器启动时都显示00:00:00之类的开始和结束时间,将来我想让用户定义他需要多少个倒数计时器以及每个计时器的时间在它们上重复一遍,因此对显示的任何帮助都是至关重要的,如果有人可以改进下一步的代码,我将非常感谢。
感谢您的协助,
repeterTimer = new CountDownTimer(3000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
isRunning = true;
meditiongong.setLooping(false);
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)));
textViewTimer.setText(hms);
}
@Override
public void onFinish() {
textViewTimer.setText("00:00:00");
isRunning = false;
meditiongong.start();
if (repeater) {
numRepeat ++ ;
numOfRepeat.setText("" + numRepeat);
repeterTimer.start();
} else {
meditiongong.setLooping(true);
}
}
};
}
首先,您需要一个TextView,其中将显示计时器的值。 我有一个带有值显示的倒数计时器示例:
private TextView remainingTimeDisplay;
private int timerProgressStatus;
remainingTimeDisplay = (TextView) findViewById(R.id.remainingTimeDisplay);
private void setQuizTimer(int time) {
final int actualTime = time*1000;
CountDownTimer gameCountDownTimer = new CountDownTimer(actualTime, 1000) {
int totalTime = actualTime;
@Override
public void onTick(long millisUntilFinished) {
/*Display time left in a textview*/
long millis =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)));
remainingTimeDisplay.setText(hms);
/*Progress bar display values*/
timerProgressStatus = (int)(( totalTime - millisUntilFinished ) /(double)totalTime * 100);
timerProgressBar.setProgress(timerProgressStatus);
}
@Override
public void onFinish() {
Toast.makeText(QuestionActivity.this,"Countdown Ended",Toast.LENGTH_SHORT).show();
}
}.start();
}
当您要使用此方法时,只需用秒数调用它。 例如:对于10秒setQuizTimer(10); 输出将是09:59,希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.