Я могу выбрать дату сверх МАКСИМАЛЬНОЙ даты, когда я перемещаюсь по Году.
Требование: я должен разрешить пользователю выбирать сегодняшнюю дату плюс 365 дней в средстве выбора даты. Поэтому минимальная дата = сегодня, максимальная дата = сегодня плюс 364
Проблема: возможность выбора сверх максимальной даты при навигации по году
Шаги для воспроизведения проблемы:
- Выбрана сегодняшняя дата (например, 25 октября 2019 года)
- Выберите дату, которая составляет 5 дней с сегодняшнего дня (например, 30 октября 2019 года)
- Выберите год и перейдите к следующему году(например: 2020)
- Вы увидите, что выбрано 24 октября 2020 года, так как это была наша МАКСИМАЛЬНАЯ дата
- Но когда вы нажмете ОК, выбранный onDate даст вам дату, превышающую максимумдата (например, 30 октября 2020 года)
private void showDatePicker(Calendar selectedDate) {
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
MainActivity.this.onDateSet(year, month, day);
}
},
selectedDate.get(YEAR),
selectedDate.get(MONTH),
selectedDate.get(DAY_OF_MONTH));
Calendar today = Calendar.getInstance();
datePickerDialog.getDatePicker().setMinDate(today.getTimeInMillis() - 1000);
today.add(DATE, 365);
datePickerDialog.getDatePicker().setMaxDate(today.getTimeInMillis());
datePickerDialog.setButton(BUTTON_NEGATIVE, "ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
datePickerDialog.dismiss();
}
});
datePickerDialog.show();
}
public void onDateSet(int year, int month, int day) {
String date = String.valueOf(year).concat("-").concat(String.valueOf(month).concat("-").concat(String.valueOf(day)));
btnDate.setText(date);
}