如何限制DatePicker不能选择未来的日期。我在注册活动中使用了DatePicker。为了让用户无法选择18岁以下的生日日期(例如不能选择今天日期减去18年后的日期之后的日期),该怎么做?
如何限制DatePicker不能选择未来的日期。我在注册活动中使用了DatePicker。为了让用户无法选择18岁以下的生日日期(例如不能选择今天日期减去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);
从现在(当前年份)往前数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);
}