Chronometer

Chronometerは、1秒ごとに時間をカウント アップする単純なタイマーです。カウントをダウンする動作をさせたい場合には、CountDownTimer | Android Developersを継承してクラスを作成することで対応します。

タイマーの操作

start()で表示の更新を開始、stop()で表示の更新を停止させます。

stop()をすることでカウントが停止するためタイマーが停止したように見えますが、実際には表示の更新を停止させているだけです。次にstart()をすると、その間に経過した時間もカウントされています。これはChronometerが内部ではSystemClock.elapsedRealtimeの時間と、基準時間の差を表示しているにすぎないためです。

カウントのリセット

カウントの基準時間を設定するsetBase()にSystemClock.elapsedRealtimeを渡すことで、カウントをリセットできます。

chronometer.setBase(android.os.SystemClock.elapsedRealtime())

タイマーの書式

setFormat()によりタイマーの書式を設定できます。

書式文字列の「%s」の位置に時間が表示されます。時間部分は"MM:SS"の形式で表示され、1時間を超えると"H:MM:SS"の形式になります。なお時間部分の書式は変更できません。

書式文字列 表示例
"ABC %s DEF"
ABC 1:23:45 DEF
%sの位置に時間が表示される。
"ABC %s %s"
1:23:45
%sを複数指定すると、書式設定が無視される。
"ABC"
ABC
%sを含まないと、時間は表示されない。
null
1:23:45
nullを指定すると、既定の表示となる。
Androidの情報サイトから、まとめて検索