Я работаю над приложением для Android и хочу установить интервал выбора времени на 30 минут вместо 1 минуты по умолчанию. Это мой код:
private void setTimePickerIntervalZeroThirtyMinutes(TimePicker timePicker) {
int TIME_PICKER_INTERVAL = 30;
NumberPicker minutePicker = timePicker.findViewById(Resources.getSystem().getIdentifier("minute", "id", "android"));
minutePicker.setMinValue(0);
minutePicker.setMaxValue((60 / TIME_PICKER_INTERVAL) + 28);
List<String> displayedValues = new ArrayList<>();
for(int i = 0; i < 60; i += TIME_PICKER_INTERVAL) {
displayedValues.add(String.format("%02d", i));
}
minutePicker.setDisplayedValues(displayedValues.toArray(new String[0]));
}
Если я запускаю вышеуказанную функцию, она отображает следующую ошибку:
java.lang.ArrayIndexOutOfBoundsException: length=2; index=30
at android.widget.NumberPicker.updateInputTextView(NumberPicker.java:1990)
at android.widget.NumberPicker.setDisplayedValues(NumberPicker.java:1554)
Я должен упомянуть, что я хочу установить минимальное значение на 0 и максимальное значение на 30, потому что в противном случае приложение не будет правильно сохранять данные в базе данных. Бот, когда я это делаю, выдает мне ошибку, которую я показал вам. Что я здесь делаю неправильно? Заранее спасибо!