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これは、日付を値に変換する必要があるだけでは設定できないことを意味します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 に答える