【发布时间】:2017-10-10 00:53:29
【问题描述】:
即使在将setMaxDate() 应用到日期选择器之后,我仍然可以在棒棒糖 5.0.1 上选择禁用的日期。该代码适用于除棒棒糖 5.0.1 之外的所有其他版本的 android。
在此处通过设置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());
请向setMaxDate()提供适用于棒棒糖的解决方案。
或者,如果您有任何其他答案,请尝试包含官方报价和资源或链接(如 android 开发者网站),如果您知道简要详细信息。提前致谢。
【问题讨论】:
-
能否提及设备制造商名称?
-
它可能与 System.currentTimeInMillis() 及其实现有关。你试过 Calendar.getInstance().getTimeInMillis() 吗?
-
@RahulKhurana 我的手机是三星。
-
@Opiatefuchs 我不这么认为它的长期价值。此外,我提到它在其他版本中运行良好。
-
不要尝试让它工作。
DatePicker会因每个设备和 Android 版本而异,有些日期显示为禁用,而有些则让您仍然选择它们,而其他人则完全忽略这些设置。确保检查返回的值,和/或切换到其他库(google / github search)。来源:在这上面浪费了足够的时间。
标签: java android datepicker