即使在日期选择器上应用了
在使用
我已经尝试过以下代码:
setMaxDate()
方法,我仍然能够在安卓5.0.1上选择被禁用的日期。除了安卓5.0.1之外,该代码对其他所有安卓版本都有效。在使用
setMaxDate()
对日期做出限制后,任何用户都不应该能够选择被禁用的日期。我该如何通过编程方式实现这一点并应用于 DatePicker
组件?我已经尝试过以下代码:
datePickerDialog = new DatePickerDialog(myContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
}
}, mYear, mMonth, mDay);
datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
datePickerDialog.setCanceledOnTouchOutside(true);
datePickerDialog.setCancelable(true);
datePickerDialog.show();
我也尝试过以下解决方案,但似乎都无法解决问题:
datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
和
Calendar maxCal = Calendar.getInstance();
datePickerDialog.getDatePicker().setMaxDate(maxCal.getTimeInMillis());
和
Date maxDate = new Date();
datePickerDialog.getDatePicker().setMaxDate(maxDate.getTime());
请提供适用于Lollipop版本的setMaxDate()
的解决方案。如果您有其他答案,请尽量包含官方引用、资源或链接(如Android开发者网站),并简要说明。谢谢。
DatePicker
在每个设备和 Android 版本中都会有所不同,有些会显示禁用的日期,而有些仍然可以选择它们,还有一些则完全忽略这些设置。请确保检查返回的值,并/或切换到其他库(谷歌/ GitHub 搜索)。来源:已经浪费了足够多的时间在这上面。 - David Medenjak