我正在使用CountDownTimer
来显示剩余时间。
数学是正确的,但它正在移除前导零。
它会给我1:9
而不是01:09
。
这是我的代码:
final TextView mTextField = (TextView)findViewById(R.id.mTextField);
new CountDownTimer(120000, 1000) {
public void onTick(long millisUntilFinished) {
long secondsUntilFinished = millisUntilFinished / 1000;
long minutes = secondsUntilFinished / 60;
long seconds = secondsUntilFinished % 60;
String time = String.format("%d:%d", minutes, seconds);
mTextField.setText(time);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
我在String.format("%d:%d", minutes, seconds);
上收到编译器警告,但我不确定它是否与它有关:
隐式使用默认语言环境是常见的错误来源:使用 String.format(Locale,...)改为
答案 0 :(得分:4)
您可以使用:
String.format("%02d:%02d", minutes, seconds);
关于您的警告,它是为了避免意外问题。
例如,如果您在阿拉伯语手机上使用%d而未向美国设置区域设置,则会显示阿拉伯数字。 因此,发出此警告可帮助您记住此行为。