-1

我希望日历显示用户只有一年的日期和休息将被禁用过去它工作正常。但现在我想做这样用户只能从当前日期选择一年的日历。这是我的代码。请建议我进行更改。

textView1.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    showDialog(DATE_DIALOG_ID);

                }
            });


    protected Dialog onCreateDialog(int id) {
        final Calendar now = Calendar.getInstance();

        switch (id) {
        case DATE_DIALOG_ID:
            // set date picker as current date
            DatePickerDialog _date =   new DatePickerDialog(this, date,myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)){
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
                {   
                    if (year < now.get(Calendar.YEAR))

                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));

                    if (monthOfYear < now.get(Calendar.MONTH) && year == now.get(Calendar.YEAR))
                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));

                    if (dayOfMonth < now.get(Calendar.DAY_OF_MONTH) && year == now.get(Calendar.YEAR) && 
                            monthOfYear == now.get(Calendar.MONTH))
                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
                        }
            };
            return _date;
        }
        return null;
    }
4

3 回答 3

0

尝试如下创建日历而不是调用 Calender.getInstance();

日历 minCal = new GregorianCalendar(2013, Calendar.JANUARY, 1);

于 2013-07-29T09:25:13.177 回答
0

获取当前日期。然后将年份值增加一。然后使用 setMaxDate 函数作为如何在 android 的 datepicker 对话框中设置最大日期?问题显示。

于 2013-07-29T09:26:22.297 回答
0

使用setMinDate()和。setMaxDate()_ DatePicker您可以从您的DatePickerDialogwith访问它getDatePicker()(需要 API 级别 11)。

http://developer.android.com/reference/android/widget/DatePicker.html

于 2013-07-29T09:28:08.097 回答