1

我的倒数计时器需要以正确的格式显示秒数。目前一切都是正确的,直到计数不到 10 秒。

此时显示如下:9 8 7 6 5 4 3 2 1. 我需要它的格式09 08 06 05 04 03 02 01

这是计时器代码:

private CountDownTimer timer(int time)
{
    CountDownTimer a = new CountDownTimer(time, 1000) 
    {
        public void onTick(long millisUntilFinished) {
            String clock;
            clock = "" + ((millisUntilFinished / 1000)/60)%60 + ":" + ((millisUntilFinished / 1000)%60);
            Clk.setText(clock);
            // mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
        }

        public void onFinish() {
            alarm.start();
            Clk.setText("00:00");
        }
    }.start();

    return a;
}
4

5 回答 5

2
int seconds = millisUntilFinished / 1000;
Clk.setClock(String.format("%02d:%02d", seconds / 60, seconds % 60));

这将显示:

12:34
07:45
00:10
00:09
00:00
于 2013-11-15T08:31:07.040 回答
1

尝试使用 String.format

int remaining = ((millisUntilFinished / 1000)%60);
clock = String.format("seconds remaining: %02d .", remaining);
于 2013-11-15T08:20:24.087 回答
1

检查您收到的秒数是否小于 10,如果是,则在它们前面添加 0,同时执行setText类似操作

if((millisUntilFinished / 1000) % 60 < 10)
    clock = "" + ((millisUntilFinished / 1000)/60)%60 + ":0" + ((millisUntilFinished / 1000)%60);
else
    clock = "" + ((millisUntilFinished / 1000)/60)%60 + ":" + ((millisUntilFinished / 1000)%60);
于 2013-11-15T08:18:01.233 回答
1
clock = "" + (String.format("%02d",(millisUntilFinished / 1000)/60)%60) + ":" + (String.format("%02d",((millisUntilFinished / 1000)%60));

            Clk.setText(clock);

利用

String.format("%02d",9) //provides 09
于 2013-11-15T08:22:48.893 回答
1
int minutes = 15;
int seconds = 1;
String display = String.format("%02d:%02d", minutes, secconds);
System.out.println("display= " + display)
于 2017-09-09T17:32:57.413 回答