Я использую materialdatetimepicker для настройки своего календаря. Мое требование: я хочу отключить все даты с сегодняшнего дня и следующего 31 дня.
Что я пробовал.
1 - Установите минимальную дату сегодня - datePickerDialog.setMinDate(now);
2 - Максимальная дата до 31 дня с сегодняшнего дня. - datePickerDialog.setMaxDate(cal);
3 - Отключены даты между ними. datePickerDialog.setDisabledDays (другие календари);
Когда я выполняю шаги 1, 2 и 3 вместе, календарь вообще не открывается, и приложение зависает.
Когда я делаю шаги (1,2) и 3 отдельно, я получаю правильные результаты. Но я хочу отображать только следующие 31 день и отключать их все.
Вот код, который я пробовал.
Где я ошибаюсь? Буду признателен за любую оказанную помощь.
private DatePickerDialog datePickerDialog;
DateTime startDateTime = new DateTime();
DateTime endDateTime = new DateTime();
endDateTime = endDateTime.plusDays(31);
List<DateTime> otherDays = new ArrayList<>();
while (startDateTime.isBefore(endDateTime)) {
otherDays.add(startDateTime);
startDateTime = startDateTime.plusDays(1);
}
Calendar[] otherCalendars = new Calendar[otherDays.size()];
for (int count = 0; count < otherDays.size(); count++) {
otherCalendars[count] = otherDays.get(count).toGregorianCalendar();
}
datePickerDialog.setMinDate(now);
Calendar cal = Calendar.getInstance();
Date ddd = endDateTime.toDate();
cal.setTime(ddd);
datePickerDialog.setMaxDate(cal);
datePickerDialog.setDisabledDays(otherCalendars);
Спасибо Р