2011-10-13 16 views
6

Tôi đang cố gắng triển khai công cụ chọn ngày trên một nút trong Android. Nhưng ngay sau khi tôi bấm vào nút lỗi sẽ bật lên. Nhưng bộ chọn thời gian chạy tốt. Dưới đây là các mã:java.lang.IllegalArgumentException: hiện tại nên là> = bắt đầu và <= end

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

Đây là 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) 

Trả lời

23

Tôi đã có cùng một vấn đề nhưng tôi tìm thấy giải pháp. Bạn nên khởi tạo 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; 
} 
Các vấn đề liên quan