Диалоговое окно выбора даты Android, чтобы выбрать только следующие 10 лет
Android DatePicker
dialog
выбрать следующий 10 year date
только.
У меня есть диалог выбора даты, в котором я хочу выбрать только future date
(следующие 10 лет) и помешать выбрать прошедшую дату. Ниже приведен мой код, который не позволяет выбирать прошедшую дату, но я хочу показать только следующую 10-летнюю дату.
try {
dateFormatter = new SimpleDateFormat("MM/yy", Locale.US);
edtMonth.setOnClickListener(this);
Calendar newCalendar = Calendar.getInstance();
datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year+2, monthOfYear, dayOfMonth);
edtMonth.setText(dateFormatter.format(newDate.getTime()));
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
// it is used for prevent old date selection.
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()+2);
} catch (Exception e) {
e.printStackTrace();
}
Заранее спасибо.
2 ответа
Для отображения только 10 лет с сегодняшнего дня вы должны установить свой MinDate
в System.currentTimeMillis()
и установить MaxDate
в CureentTimeMillis + Next 10 Year Millis
и добавьте это значение к вашему MaxDate
как ниже путь.
к setMinDate
Сегодня.
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());
к setMaxDate
Сегодня.
datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 10 year Millis);
Попробуй это
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.YEAR, 10);
Date newDate = cal.getTime();
datePicker.getDatePicker().setMinDate(System.currentTimeMillis());
datePicker.getDatePicker().setMaxDate(newDate.getTime());