Як обмежити на DatePicker не можна вибрати датув майбутньому. Я маю DatePicker в діяльності, яка використовується для реєстрації. Що робити, якщо користувач не може вибрати дату народження, якщо користувач має менше 18 років (наприклад, не може вибрати дату після сьогоднішнього дня - 18 років)?
Відповіді:
2 для відповіді № 1Ви не згадали, який рівень API. Про стільникові та пізніше DatePicker має методи setMin / MaxDate, які можна використовувати для обмеження допустимого діапазону.
2 для відповіді № 2
Я сподіваюся, що ви отримали відповідь дотепер. Наступне може бути корисним і для інших: Якщо ви хочете вимкнути користувача для вибору дати 18 років після сьогоднішнього дня, ось що ви можете зробити.
Отримайте час від 1-го січня-1970 до 18 років (у мілі секундах)
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR)+18,cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH),
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), 0);
long time = cal.getTimeInMillis();
встановіть його як максимально допустиму дату у виборі дати
datepicker2.setMaxDate(time);
Сподіваюся, що це допомагає будь-кому, хто шукає відповіді
0 для відповіді № 3
Перерахуйте рік до 18 з цього моменту (поточний рік) на int minYear = currentYear - 18; А потім встановіть дату (мінулого року, поточного місяця, поточного дня) як максимальну межу вибору дати.
private static void setMaxLimitInDatePicker(DatePickerDialog datePickerDialog) {
final Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH);
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
int minYear = currentYear - 18;
int minMonth = currentMonth;
int minDay = currentDay;
calendar.set(minYear, minMonth, minDay);
long minDateInMilliSeconds = calendar.getTimeInMillis();
// Set 18 years from today as max limit of date picker
datePickerDialog.getDatePicker().setMaxDate(minDateInMilliSeconds);
}