TextViewに現在の時刻をリアルタイムで更新、表示する方法を紹介します。
こんな感じの画面が表示されます。
コード
以下のコードで時刻を更新、表示しています。
val textView = findViewById<TextView>(R.id.timeView)
val handler = Handler()
timer(period = 1000) {
val calendar = Calendar.getInstance()
val hour = calendar.get(Calendar.HOUR_OF_DAY)
val minute = calendar.get(Calendar.MINUTE)
val second = calendar.get(Calendar.SECOND)
handler.post {
textView.text = "${hour}時 ${minute}分 ${second}秒"
}
}
timerで指定した処理(今回だとTextViewに時刻を表示する)が1秒ごとに実行されます。
画面のコードは以下の通りです。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/timeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50dp"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>