In this short Kotlin tutorial I am going to share with you how to create a TimePicker in Kotlin programmatically and how to update text label when the value of Hours or Minutes has changed. The below code example will cover:
- Create TimePicker and add it to LinearLayout
- Get input from TimePicker when user changes the value of Hours or Minutes
- Example of using the setOnTimeChangedListener
TimePicker XML Layout File
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearLayout"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.appsdeveloperblog.kotlinexample3.TimePickerExample">
</LinearLayout>
TimePicker Example in Kotlin
In the Kotlin code example below we will create a new TimePicker programmatically and we will add it to a LinearLayout. We will then use the setOnTimeChangedListener to listen for events when user changes the value of TimePicker. And when the value is changed, we will read the value of Hour and Minutes and will set them into the textView for display.
package com.appsdeveloperblog.kotlinexample3
import android.os.Build
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.annotation.RequiresApi
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.TimePicker
class TimePickerExample : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.M)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_time_picker_example)
val linearLayout = findViewById(R.id.linearLayout) as LinearLayout
val textView = TextView(this)
linearLayout.addView(textView)
val timePicker = TimePicker(this)
linearLayout.addView(timePicker)
textView.text = "Hour: "+timePicker.hour+ " Minute: "+ timePicker.minute
timePicker.setOnTimeChangedListener(TimePicker.OnTimeChangedListener { timePicker, hour, minute ->
textView.text = "Hour: "+ hour + " Minute : "+ minute
})
}
}
When you run this Kotlin code example, you should get the following view on your screen:

Don’t forget to check other Kotlin programming tutorials I have published in Kotlin category.
And if you are interested in learning Kotlin in more details, check out the below books and video lessons.
Happy learning Kotlin!
Building Mobile Apps with Kotlin for Android – Books