我使用的是高于API 11,这在隐藏未来日期期间存在一些问题:
@Override
protected Dialog onCreateDialog(int id) {
Calendar c = Calendar.getInstance();
int cyear = c.get(Calendar.YEAR);
int cmonth = c.get(Calendar.MONTH);
int cday = c.get(Calendar.DAY_OF_MONTH);
switch (id) {
case DATE_DIALOG_ID:
DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday);
dialog.getDatePicker().setMaxDate(new Date());
return dialog;
/*return new DatePickerDialog(this, mDateSetListener, cyear, cmonth,
cday);*/
}
return null;
}
我遇到问题: setMaxDate(new Date());
我收到此错误:
The method setMaxDate(long) in the type DatePicker is not applicable for the arguments (Date)
所以,请如何隐藏未来日期。
答案 0 :(得分:0)
如果你阅读了它所说的方法的描述
public void setMaxDate (long maxDate)
Added in API level 11
Sets the maximal date supported by this DatePicker in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
Parameters
maxDate The maximal supported date
这意味着您不能只设置Date
,必须将日期转换为long
值。
你可以这样做:
new Date().getTime()
更多详情here。
答案 1 :(得分:0)
来自doc:
以毫秒设置此DatePicker支持的最大日期 自1970年1月1日00:00:00起在getDefault()时区。
您可以执行以下操作:
dialog.getDatePicker().setMaxDate(new Date().getTime());