I am trying to implement date picker on a button in android. But as soon as i click on the button error pops up. But time picker runs fine. Here's the code:
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();
}
};
Here's the 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)
An IllegalArgumentException is thrown in order to indicate that a method has been passed an illegal argument. This exception extends the RuntimeException class and thus, belongs to those exceptions that can be thrown during the operation of the Java Virtual Machine (JVM).
IllegalArgumentException is a Java exception indicating that a method has received an argument that is invalid or inappropriate for this method's purposes.
I've got the same problem but I found solution. You should initialize 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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With