无法在Android中设置隐藏未来日期

时间:2013-05-21 06:28:19

标签: android datepicker

我使用的是高于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)

所以,请如何隐藏未来日期。

2 个答案:

答案 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());