1

DatePickerDialogAndroid で日付範囲を選択するために使用しminDateていMaxDateますLolliPop (5+)。しかし、以下の Lollipop で同じことを実行すると、例外がスローされます。

使用コード:

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

ハニカムの下では機能しません。

于 2015-04-21T13:41:13.657 に答える
0

DatePickerDialog クラスを拡張して、API レベル 11 より前の Android バージョンをサポートします。

リンクを確認してください: Android アプリケーションで最大および最小の日付範囲を持つカスタム DatePicker コントロールを作成する方法

于 2015-04-21T14:05:42.037 に答える