Android TimePickerDialog Tutorial
View more Tutorials:
Android TimePickerDialog puts a TimePicker on a Dialog. It allows the user to choose a Time. Basically, there is no significant difference between TimePickerDialog and TimePicker, but if you want to save application space, the TimePickerDialog is the better choice.
TimePickerDialog is created at the application runtime when the user needs to select a time. You can create and get it displayed by using the Java code:
TimePickerDialog (Clock Mode) (Default)
boolean is24HView = true; int selectedHour = 10; int selectedMinute = 20; // Time Set Listener. TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { editTextTime.setText(hourOfDay + ":" + minute ); lastSelectedHour = hourOfDay; lastSelectedMinute = minute; } }; // Create TimePickerDialog: TimePickerDialog timePickerDialog = new TimePickerDialog(this, timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView); // Show timePickerDialog.show();

TimePickerDialog (Spinner Mode)
boolean is24HView = true; int selectedHour = 10; int selectedMinute = 20; // Time Set Listener. TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { editTextTime.setText(hourOfDay + ":" + minute ); lastSelectedHour = hourOfDay; lastSelectedMinute = minute; } }; // Create TimePickerDialog: TimePickerDialog timePickerDialog = new TimePickerDialog(this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar, timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView); // Show timePickerDialog.show();

Example preview:

24H View Mode

12H View Mode
Now, create a new project on Android Studio:
- File > New > New Project > Empty Activity
- Name: TimePickerDialogExample
- Package name: org.o7planning.timepickerdialogexample
- Language: Java
The interface of the application will look like this:

activity_main.java
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/editText_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:ems="10" android:inputType="time" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:text="Select Time" app:layout_constraintStart_toEndOf="@+id/editText_time" app:layout_constraintTop_toTopOf="parent" /> <CheckBox android:id="@+id/checkBox_isSpinnerMode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:text="Spinner Mode?" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText_time" /> <CheckBox android:id="@+id/checkBox_is24HView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:text="Display TimePickerDialog in 24H mode?" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox_isSpinnerMode" /> </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.timepickerdialogexample; import androidx.appcompat.app.AppCompatActivity; import android.app.TimePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TimePicker; import java.util.Calendar; public class MainActivity extends AppCompatActivity { private EditText editTextTime; private Button buttonTime; private CheckBox checkBoxIsSpinnerMode; private CheckBox checkBoxIs24HView; private int lastSelectedHour = -1; private int lastSelectedMinute = -1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.editTextTime = (EditText) this.findViewById(R.id.editText_time); this.buttonTime = (Button) this.findViewById(R.id.button_time); this.checkBoxIsSpinnerMode = (CheckBox) this.findViewById(R.id.checkBox_isSpinnerMode); this.checkBoxIs24HView = (CheckBox) this.findViewById(R.id.checkBox_is24HView); this.buttonTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { buttonSelectTime(); } }); } private void buttonSelectTime() { if(this.lastSelectedHour == -1) { // Get Current Time final Calendar c = Calendar.getInstance(); this.lastSelectedHour = c.get(Calendar.HOUR_OF_DAY); this.lastSelectedMinute = c.get(Calendar.MINUTE); } final boolean is24HView = this.checkBoxIs24HView.isChecked(); final boolean isSpinnerMode = this.checkBoxIsSpinnerMode.isChecked(); // Time Set Listener. TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { editTextTime.setText(hourOfDay + ":" + minute ); lastSelectedHour = hourOfDay; lastSelectedMinute = minute; } }; // Create TimePickerDialog: TimePickerDialog timePickerDialog = null; // TimePicker in Spinner Mode: if(isSpinnerMode) { timePickerDialog = new TimePickerDialog(this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar, timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView); } // TimePicker in Clock Mode (Default): else { timePickerDialog = new TimePickerDialog(this, timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView); } // Show timePickerDialog.show(); } }