我在 Android 中使用来选择日期范围,DatePickerDialog
我可以在. 但是在 Lollipop 下面执行相同的操作时,它会抛出异常。minDate
MaxDate
LolliPop (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
请帮忙...