当我运行下面的代码时,我无法在每次定时器启动时显示开始和结束时间,如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);
}
}
};
}
答案 0 :(得分:0)
首先,您需要一个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,希望这会有所帮助。