Chronometerの値の取得方法 [kotlin]

やりたいこと・動機

  1. ちょっとしたゲームを作ってて、Chronometerでクリア時間を測定→データベースに保存の処理を書きたい!
  2. けど、Chronometerに表示されてる秒数をそのままぬきだす方法の日本語記事がない...
  3. じゃあ、自分で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

ぴこはんの開発日記

自分で開発したものを紹介するところ 最近はKotlinでAndroidアプリをさわってます 言語 Kotlin/Java

3コメント

  • 1000 / 1000

  • zenglintao

    2021.02.18 15:12

    2534324260@qq.com 这是我的邮箱
  • zenglintao

    2021.02.18 15:11

    我是林涛,能交个朋友吗?
  • zenglintao

    2021.02.18 15:11

    大佬你好呀