本文针对网上用android的chronometer实现HH:MM:SS的显示,大部分代码都是错误的,根本没有去实际测试过
如下图就是错误的
废话不多说,直接上代码,亲自测试了几天,在大于99个小时是显示如 100:00:00,要改的同学也可以自己改下
xml文件
<Chronometer
android:id="@+id/timecount"
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_marginLeft="10dp"
android:format="00:00:00"
android:textSize="20dp" />
java文件
public void starttimecount() {
timecount.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer cArg) {
long time = System.currentTimeMillis() - cArg.getBase();
int h = (int) (time / 3600000);
int m = (int) (time - h * 3600000) / 60000;
int s = (int) (time - h * 3600000 - m * 60000) / 1000;
String hh = h < 10 ? "0" + h : h + "";
String mm = m < 10 ? "0" + m : m + "";
String ss = s < 10 ? "0" + s : s + "";
String timeFormat = hh + ":" + mm + ":" + ss;
//timecount.updateTime(timeFormat);
timecount.setText(timeFormat);
}
});
timecount.setBase(System.currentTimeMillis());
timecount.start();
}