我有一个倒计时的计时器。我希望显示的格式为 00.00 或“ss.SS”。但是,我在几个小时内没有取得任何进展。如果没有 SimpleDateFormat,它会显示 01.91,然后转到 01.9。这使得它很难看,因为它会闪烁以保持视图居中。我真正想要的是一种保持格式 01.90 并且不允许删除 0 的方法。我可以在没有 SimpleDateFormat 的情况下使用我的原始代码完成此操作吗?
/*
* This is my original code before I tried the SimpleDateFormat
*
* This code is fully functional and works good, it just keeps dropping the 0 every
* 10 milliseconds and makes the view shake
*
* getTimeSecs() could return 5, 10, 15, 30, 90 seconds converted to milliseconds
* getCountDownInterval() returns 10
*
*/
public void createTimer() {
myCounter = new CountDownTimer(getTimeSecs(), getCountDownInterval()) {
public void onTick(long millisUntilFinished) {
timerIsRunning = true;
if(millisUntilFinished < 10000) {
TVcountDown.setText("0" + ((millisUntilFinished / 10) / 100.0));
} else {
TVcountDown.setText("" + ((millisUntilFinished / 10) / 100.0));
}
} //end onTick()
@Override
public void onFinish() {
timerIsRunning = false;
TVcountDown.setBackgroundColor(myRes.getColor(R.color.solid_red));
TVcountDown.setTextColor(myRes.getColor(R.color.white));
TVcountDown.setText("Expired");
// Make sure vibrate feature is enabled
if(wantsVib == true) {
vib.vibrate(300);
}
} //end onFinish()
}.start();
} //end createTimer()
这是我尝试 SimpleDateFormat 后的代码
public void createTimer() {
myCounter = new CountDownTimer(getTimeSecs(), getCountDownInterval()) {
public void onTick(long millisUntilFinished) {
timerIsRunning = true;
long current = (long) ((millisUntilFinished / 10) / 100.0);
TVcountDown.setText("" + timerDisplay.format(current));
}
@Override
public void onFinish() {
timerIsRunning = false;
TVcountDown.setBackgroundColor(myRes.getColor(R.color.solid_red));
TVcountDown.setTextColor(myRes.getColor(R.color.white));
TVcountDown.setText("Expired");
// Make sure vibrate feature is enabled
if(wantsVib == true) {
vib.vibrate(300);
}
}
}.start();
} //end createTimer()
我知道!我什至不认为我接近使用 SimpleDateFormat 得到它,我感到很沮丧。它运行,但只在毫秒方面倒计时。所以 15 秒显示 00.15 而不是 15.00。
我不希望有人为我编写所有代码,只需要指出正确的方向。我能找到的所有教程都涉及年、日等,我无法从中掌握概念。
我不想使用 SimpleDateFormat——因为它对我来说并不简单——只需使用我的原始代码并每 10 毫秒在毫秒侧的末尾添加一个零。
提前致谢。