0

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

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

4

2 回答 2

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你必须将你的 Date 转换为一个long值。

你可以这样做:

new Date().getTime()

更多细节在这里

于 2013-05-21T06:34:14.070 回答
0

从文档:

设置自 getDefault() 时区 1970 年 1 月 1 日 00:00:00 以来此 DatePicker 支持的最大日期(以毫秒为单位)。

您可以执行以下操作:

dialog.getDatePicker().setMaxDate(new Date().getTime());
于 2013-05-21T06:34:53.727 回答