I am using Android 7.0 (Nougat)
I create EditText to display time, when click it, it will show a TimePicker, and update time in EditText
Everything works smoothly, but now I want to show a Timepicker with 5 minutes interval
It means that user only can select 5,10,15,20...minutes
Here is my code:
public class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
private EditText mEditText;
private int initHour;
private int initMinute;
public void setEditText(EditText editText) {
mEditText = editText;
}
public void setInitHour(int hour) {
initHour = hour;
}
public void setInitMinute(int minute) {
initMinute = minute;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new TimePickerDialog(getActivity(), this, initHour, initMinute, DateFormat.is24HourFormat(getActivity()));
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
SimpleDateFormat timeSdf = new SimpleDateFormat("HH:mm", Locale.US);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
mEditText.setText(timeSdf.format(calendar.getTime()));
}
}
And in Activity:
TimePickerFragment dialogFragment = new TimePickerFragment();
dialogFragment.setInitHour(11);
dialogFragment.setInitMinute(30);
dialogFragment.setEditText(mStartTimeText);
dialogFragment.show(getFragmentManager(), "startTimePicker");
I've researched related posts, but all the solutions are not up-to-date
I cannot find a solution fitting for Nougat version
If any hint for me, I will very appreciate! Thank you.
TimePicker doesn't support intervals. You will have to implement custom view to achieve that functionality. Copy paste solution ;) . You are welcome.
In your XML: