如何限制DatePicker以后不能选择日期。我在活动中有DatePicker,用于注册。该怎么办如果用户少于18年(例如在今天 - 18年之后无法选择日期),用户就无法选择生日日期?
答案 0 :(得分:2)
您没有提到哪个API级别。在Honeycomb及更高版本中,DatePicker设置了可用于限制允许范围的MIN / MaxDate方法。
答案 1 :(得分:2)
我希望你能得到答案。以下内容对其他人也可能有用: 如果你想禁用用户在今天18年后选择一个日期,你可以这样做。
从1970年1月1日到现在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();
将其设置为datepicker
中的最大允许日期 datepicker2.setMaxDate(time);
希望对寻求答案的其他人有所帮助
答案 2 :(得分:0)
从现在开始计算当前年份(当前年份)的年份,以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);
}