
我要實(shí)現(xiàn)的功能是點(diǎn)擊按鈕開始工作,計(jì)時(shí)器開始計(jì)時(shí),再點(diǎn)停止計(jì)時(shí),再點(diǎn)一次接著之前的時(shí)間計(jì)時(shí)。我使用的是Chronometer 控件。
先看布局
<LinearLayout android:layout_width="match_parent" android:layout_height="70dp" android:gravity="center|bottom" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="在線時(shí)長" android:textColor="#fff" android:textSize="32sp" /> <Chronometer android:id="@+id/timer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:textColor="#fff" android:textSize="32sp" android:format="00:00:00"/></LinearLayout>定義一個(gè)總時(shí)間,秒為單位
PRivate int totalTime = 0;開始計(jì)時(shí),調(diào)用Chronometer的監(jiān)聽事件
timer.start();timer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { totalTime++; timer.setText(FormatTime(totalTime)); }});規(guī)范時(shí)間的顯示格式
public static String FormatTime(int time) { String hh = time / 3600 > 9 ? time / 3600 + "" : "0" + time / 3600; String mm = (time % 3600) / 60 > 9 ? (time % 3600) / 60 + "" : "0" + (time % 3600) / 60; String ss = (time % 3600) % 60 > 9 ? (time % 3600) % 60 + "" : "0" + (time % 3600) % 60; return hh + ":" + mm + ":" + ss;}停止計(jì)時(shí)
timer.stop();我這里只是用到了開始和停止,如果想重置時(shí)間的話就設(shè)置它的base
timer.setBase(SystemClock.elapsedRealtime());因?yàn)槲倚枰@示時(shí)分秒,如果只是簡易的計(jì)時(shí)器,不需要“時(shí)”,則沒有必要調(diào)用監(jiān)聽,代碼更簡單。只要初始化Chronometer后,給它設(shè)置格式規(guī)范,然后調(diào)用開始和停止的方法,就可以實(shí)現(xiàn)計(jì)時(shí)器功能。
timer.setFormat("%s");
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注