1

我在 Android 中使用来选择日期范围,DatePickerDialog我可以在. 但是在 Lollipop 下面执行相同的操作时,它会抛出异常。minDateMaxDateLolliPop (5+)

使用的代码:

Calendar cal_currentDate=Calendar.getInstance();

cal_currentDate.set(cal_currentDate.get(Calendar.YEAR),cal_currentDate.get(Calendar.MONTH)+1,cal_currentDate.get(Calendar.DAY_OF_MONTH));
Calendar cal = Calendar.getInstance();

DatePickerDialog datepicker=new DatePickerDialog(getActivity(),new OnDateSetListener() {
     @Override
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {}                         },
          cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH));
          datepicker.show();
          datepicker.getDatePicker().setMaxDate(cal.getTimeInMillis()); // here am setting Maximum date as current date
          cal.add(Calendar.MONTH,-3); // here am setting Minimum date 3 months less than current date         
          datepicker.getDatePicker().setMinDate(cal.getTimeInMillis());
          datepickerdialog.show();

结果:在 Android Lollipop 中运行良好。在其他较低版本中出现异常崩溃

这是异常消息

 java.lang.IllegalArgumentException: Time not between Sat Mar 21 18:23:16 GMT+00:00 2015 and Tue Apr 21 18:23:16 GMT+00:00 2015
            at android.widget.CalendarView.goTo(CalendarView.java:789)
            at android.widget.CalendarView.setMinDate(CalendarView.java:478)
            at android.widget.DatePicker.setMinDate(DatePicker.java:316)
            at com.teledna.moby.ui.Fragment_homeMenu$16.onCheckedChanged(Fragment_homeMenu.java:1124

请帮忙...

4

2 回答 2

0
setMaxDate

在 Honeycomb 下不起作用。

于 2015-04-21T13:41:13.657 回答
0

扩展 DatePickerDialog 类以支持 API 级别 11 之前的 Android 版本。

检查链接: 如何在 Android 应用程序中制作具有最大和最小日期范围的自定义 DatePicker 控件

于 2015-04-21T14:05:42.037 回答