In my project, I use TimepickerDialog
to show the time in a TextView
. My Timepickerdialog
is shown as a clock, but I want it shown as a spinner. How can I do this?
Asked
Active
Viewed 1.7k times
5
-
[timepicker with spinner mode](https://developer.android.com/reference/android/widget/TimePicker.html#attr_android:timePickerMode) – Jay Oct 12 '18 at 08:37
-
1Possible duplicate of [Is it possible to change the style of an Android L TimePickerDialog?](https://stackoverflow.com/questions/24449723/is-it-possible-to-change-the-style-of-an-android-l-timepickerdialog) – Manohar Oct 12 '18 at 08:40
6 Answers
1
use this code show time picker as spinner
public void showCustomTimePicker()
{
final Calendar myCalender = Calendar.getInstance();
int hour = myCalender.get(Calendar.HOUR_OF_DAY);
int minute = myCalender.get(Calendar.MINUTE);
TimePickerDialog.OnTimeSetListener myTimeListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (view.isShown()) {
myCalender.set(Calendar.HOUR_OF_DAY, hourOfDay);
myCalender.set(Calendar.MINUTE, minute);
}
}
};
TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(), android.R.style.Theme_Holo_Light_Dialog_NoActionBar, myTimeListener, hour, minute, true);
timePickerDialog.setTitle("Choose hour:");
timePickerDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
timePickerDialog.show();
}

Bhuvaneshwaran Vellingiri
- 569
- 1
- 10
- 21
1
Use this code
TimePickerDialog picker = new TimePickerDialog(MainActivity.this,android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker tp, int sHour, int sMinute) {
//eText.setText(sHour + ":" + sMinute);
}
}, 2, 3, false);
picker.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
picker .show();

Shahzain ali
- 1,679
- 1
- 20
- 33
-
`android.R.style.Theme_Holo_Light_Dialog_NoActionBar` is deprecated in API 28. – Vadim Kotov Jul 30 '19 at 13:49
-
-
0
Kotlin:
I used the below code to get the Timepicker in spinner mode.
private fun showTimePicker() {
// Use the current time as the default values for the picker
val c = Calendar.getInstance()
val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)
// date picker dialog
val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute ->
c.set(Calendar.HOUR_OF_DAY, hour)
c.set(Calendar.MINUTE, minute)
mSelectedTime = SimpleDateFormat("HH:mm").format(c.time)
root.tvTime.text = mSelectedTime
}
val timePickerDialog = TimePickerDialog(requireContext(),AlertDialog.THEME_HOLO_LIGHT, timeSetListener, hour, minute,
DateFormat.is24HourFormat(requireContext()))
timePickerDialog.show()
}

Yogesh Nikam Patil
- 1,192
- 13
- 18
0
All you need is to specify a theme and add the next style property
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TimePicker" parent="Theme.AppCompat.Light.Dialog">
<item name="android:timePickerMode">spinner</item>
</style>
</resources>
here are some related info

blacktiago
- 351
- 2
- 11
-2
Add android:timePickerMode = "1"
for spinner mode
and
android:timePickerMode="2"
for clock mode.
Edit
Use a theme in constructor of TimePickerDialog like this
TimePickerDialog timePickerDialog = new TimePickerDialog(DateTimePickerDialogActivity.this, android.R.style.Theme_Holo_Light_Dialog, onTimeSetListener, hour, minute, is24Hour);

Rohit5k2
- 17,948
- 8
- 45
- 57
-
-
@zahras: Use a theme that used spinner such as `android.R.style.Theme_Holo_Light_Dialog` – Rohit5k2 Oct 12 '18 at 09:48
-
2`android.R.style.Theme_Holo_Light_Dialog` is deprecated in API 28. – Vadim Kotov Jul 30 '19 at 13:48
-
2
-3
TimePickerDialog nTimePickerDialog = new TimePickerDialog(this, 2,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker pTimePicker, int hr, int min) {
TextView.setText(MessageFormat.format("{0}:{1}", hr, min));
}
},
mHour, mMin, false);
nTimePickerDialog.setTitle("Select Intervals");
nTimePickerDialog.show();