如何在Android中显示当前日期仅一年的日历?

时间:2013-07-29 09:15:53

标签: java android android-datepicker android-date android-dateutils

我希望日历显示用户只有一年的日期和休息将被禁用过去它工作正常。但现在我想这样,用户可以从当前日期只选择一年的日历。这是我的代码。请告诉我这些变化。

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;
    }

3 个答案:

答案 0 :(得分:0)

尝试创建一个日历,而不是调用Calender.getInstance();

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

答案 1 :(得分:0)

获取当前日期。然后将年份值增加一。然后使用setMaxDate函数作为How set maximum date in datepicker dialog in android?问题显示。

答案 2 :(得分:0)

setMinDate()上使用setMaxDate()DatePicker。您可以使用DatePickerDialoggetDatePicker()访问它(需要API级别11)。

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