/ / Як обмежити користувача на DatePicker можна тільки вибрати дату до today_date - 18 років - android, android-widget

Як обмежити користувача на DatePicker можна тільки вибрати дату до today_date - 18 років - Android, Android-віджет

Як обмежити на 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);
}