我想在前五秒钟设置一个文本然后在屏幕上的计时器显示之后。所以计时器正在计算前五个,但直到五秒后才显示。这是我的一些代码。我有更多,但只是粘贴了倒计时器onTick-part。 timeChosen变量来自用户从1-5(分钟)中选择的内容。
new CountDownTimer(timeChosen * 60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d",
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
if(millis+12000>=(timeChosen * 60000)){
System.out.println("test");
textTimer.setText("Do Exercise");
}
else
{
textTimer.setText(hms);
}
}
答案 0 :(得分:0)
这会将您的毫秒数转换为整数,因此当您想要比较它时会更精确。 TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)
试试这样的事情:
long delayTime = 5000; //5s of delay in millisenconds
int timeChosen = 3; //3 mins
new CountDownTimer((timeChosen * 60000) + delayTime, 1000) {
@Override
public void onTick(long millisUntilFinished) {
if (delayTime == 0) {
//Start your progressBar or do whatever you want
}
else
{
textTimer.setText(delayTime);
delayTime--;
}
}
}