Sté*_*ane 18
第一个提案 - 仅留给历史
Chronometer c;
...
c.setFormat("HH:MM:SS");
Run Code Online (Sandbox Code Playgroud)
编辑 -这不起作用在所有!对于太快,未经测试的答案感到抱歉......这是有效的:
Chronometer c;
...
c.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer cArg) {
long t = SystemClock.elapsedRealtime() - cArg.getBase();
cArg.setText(DateFormat.format("kk:mm:ss", t));
}
});
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我想出了这段代码.它没有经过全面测试,但是如果你可以提供更多信息
private void formatChronometerText(Chronometer c) {
int cTextSize = c.getText().length();
if (cTextSize == 5) {
breakingTime.setFormat("00:%s");
} else if (cTextSize == 7) {
breakingTime.setFormat("0%s");
} else if (cTextSize == 8) {
breakingTime.setFormat("%s");
}
}
Run Code Online (Sandbox Code Playgroud)
我在方法中调用了这个方法,onCreate()例如.
Chronometer c = ...
...
formatChronometerText(c);
c.setText("00:00:00");
Run Code Online (Sandbox Code Playgroud)
我将在一天内回来验证它是否有效,或者在文本大小发生变化后也需要调用它.如果你是一个谨慎的人,我建议你用c.start()和在相同的上下文中调用它c.stop()
if(ticking){
c.stop();
formatChronometerText(c);
} else {
formatChronometerText(c);
c.start()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24062 次 |
| 最近记录: |