2011-10-13 23 views
6

私はアンドロイドのボタンで日付ピッカーを実装しようとしています。しかし、すぐに私はボタンのエラーをポップアップをクリックします。しかし、時間ピッカーは正常に動作します。ここでは、コードです:java.lang.IllegalArgumentException:現在=>開始し、<=終了する必要があります

mPickDate.setOnClickListener(new View.OnClickListener() {  //Assigning onClickListener to Date Button                 
     public void onClick(View v) { 
      showDialog(DATE_DIALOG_ID); 
      }  
    }); 

    pickTime.setOnClickListener(new View.OnClickListener() {  //Assigning onClickListener to Time Button 

     @Override 
     public void onClick(View v) { 
      showDialog(TIME_DIALOG_ID); 

     } 
    }); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) {      //Overriding onCreateDialog() 
     switch (id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); 
     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this,mTimeSetListener,mHour,mMin,true); 

     } 
     return null; 
    } 

    TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {  //Defining the TimePickerDialog reference variable 

     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      mHour=hourOfDay; 
      mMin= minute; 
      updateTime(); 
     } 
    }; 

    DatePickerDialog.OnDateSetListener mDateSetListener =      //Defining the DatePickerDialog reference variable 
     new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, 
            int monthOfYear, int dayOfMonth) { 
       mYear = year; 
       mMonth = monthOfYear; 
       mDay = dayOfMonth; 
       updateDisplay(); 
      } 
     };   

はここでlogcatです:

10-13 16:41:46.878: ERROR/AndroidRuntime(761): FATAL EXCEPTION: main 
10-13 16:41:46.878: ERROR/AndroidRuntime(761): java.lang.IllegalArgumentException: current should be >= start and <= end 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.widget.NumberPicker.setCurrent(NumberPicker.java:288) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.widget.DatePicker.updateDaySpinner(DatePicker.java:370) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.widget.DatePicker.updateSpinners(DatePicker.java:356) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.widget.DatePicker.init(DatePicker.java:352) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.DatePickerDialog.<init>(DatePickerDialog.java:127) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.DatePickerDialog.<init>(DatePickerDialog.java:86) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at acb.xiynove.OfflineScreen_ACBActivity.onCreateDialog(OfflineScreen_ACBActivity.java:74) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.Activity.onCreateDialog(Activity.java:2482) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.Activity.createDialog(Activity.java:882) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.Activity.showDialog(Activity.java:2557) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.Activity.showDialog(Activity.java:2524) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at acb.xiynove.OfflineScreen_ACBActivity$3.onClick(OfflineScreen_ACBActivity.java:56) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.view.View.performClick(View.java:2485) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.view.View$PerformClick.run(View.java:9080) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.os.Handler.handleCallback(Handler.java:587) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.os.Looper.loop(Looper.java:123) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at java.lang.reflect.Method.invoke(Method.java:507) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
10-13 16:41:46.878: ERROR/AndroidRuntime(761):  at dalvik.system.NativeStart.main(Native Method) 

答えて

23

私は同じ問題を持っているが、私は解決策を見つけました。 mYear、mMonth、mDayを初期化する必要があります。

//Init this variables as you wish eg.: 
private int mYear = 2010; 
private int mMonth = 11; 
private int mDay =1; 
@Override 
protected Dialog onCreateDialog(int id) {      //Overriding onCreateDialog() 
    switch (id) { 
    case DATE_DIALOG_ID: 
     return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); 
    case TIME_DIALOG_ID: 
     return new TimePickerDialog(this,mTimeSetListener,mHour,mMin,true); 

    } 
    return null; 
} 
関連する問題