Как предотвратить изменение часа при переносе минуты с помощью TimePickerDialog
У меня есть следующий код в Java с помощью Android Studio:
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.NumberPicker;
import android.widget.TimePicker;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class TimePickerFragment extends TimePickerDialog {
private final static int TIME_PICKER_INTERVAL = 15;
private TimePicker mTimePicker;
private final OnTimeSetListener mTimeSetListener;
public TimePickerFragment(Context context, OnTimeSetListener listener,
int hourOfDay, int minute, boolean is24HourView) {
super(context, TimePickerDialog.THEME_HOLO_LIGHT, null, hourOfDay,
minute / TIME_PICKER_INTERVAL, is24HourView);
mTimeSetListener = listener;
}
@Override
public void updateTime(int hourOfDay, int minuteOfHour) {
mTimePicker.setCurrentHour(hourOfDay);
mTimePicker.setCurrentMinute(minuteOfHour / TIME_PICKER_INTERVAL);
}
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE:
if (mTimeSetListener != null) {
mTimeSetListener.onTimeSet(mTimePicker, mTimePicker.getCurrentHour(),
mTimePicker.getCurrentMinute() * TIME_PICKER_INTERVAL);
}
break;
case BUTTON_NEGATIVE:
cancel();
break;
}
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
try {
Class<?> classForId = Class.forName("com.android.internal.R$id");
Field timePickerField = classForId.getField("timePicker");
mTimePicker = findViewById(timePickerField.getInt(null));
Field field = classForId.getField("minute");
NumberPicker minuteSpinner = mTimePicker.findViewById(field.getInt(null));
minuteSpinner.setMinValue(0);
minuteSpinner.setMaxValue((60 / TIME_PICKER_INTERVAL) - 1);
List<String> displayedValues = new ArrayList<>();
for (int i = 0; i < 60; i += TIME_PICKER_INTERVAL) {
displayedValues.add(String.format("%02d", i));
}
minuteSpinner.setDisplayedValues(displayedValues.toArray(new String[displayedValues.size()]));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Что происходит, когда минута становится равной 00 (вверх или вниз), она переводит час на следующий час (вверх или вниз):
Я пытаюсь предотвратить изменение часа, когда минута переходит на 00. Возможно ли это? Я не могу найти какие-либо примеры, которые делают это.