やりたいこと・動機
- ちょっとしたゲームを作ってて、Chronometerでクリア時間を測定→データベースに保存の処理を書きたい!
- けど、Chronometerに表示されてる秒数をそのままぬきだす方法の日本語記事がない...
- じゃあ、自分でreference読んで分かったことを書こう!
といった感じです。
Chronometerのそもそもの使い方
まず、chronometer.base = SystemClock.elapsecRealTime()ですが、ここでは、chronometerのスタート時間を決めます。ここでいうスタート時間とは、"00:00:00"をPCが起動されてから何ミリ秒かを指定することです。PCが起動してからの時間を求めるには、SystemClock.elapsedRealTime()を用います。
次にchronometer.stop()です。このメソッドでタイマーをスタートします。
最後にchronometer.stop()です。タイマーをストップします。
解決方法
リファレンスを読んでみましたが、chronometerは現在時刻を示すパラメータを持っていないようで、結局、 (現在時刻ミリ秒 - タイマースタート時刻ミリ秒) で計算するしかなさそうです。(これじゃあ、普通に使う手法と同じですね...)
現在の時刻 SystemClock.elapsedRealTime() から,先ほど設定した chronometer.base をひいただけです。
まとめと感想
あまりにも普通のこと過ぎて、何のひねりもないですけど、新しく変数を作る必要もないし、chronometer準拠で秒数が得られるので一応解決ということで。
参考文献
Android Developers Chronometer
https://developer.android.com/reference/android/widget/Chronometer.html
Android Developers System.Clock
https://developer.android.com/reference/android/os/SystemClock.html
3コメント
2021.02.18 15:12
2021.02.18 15:11
2021.02.18 15:11