【发布时间】:2013-01-11 13:07:00
【问题描述】:
当我单击对话框时,它会强制关闭。工作正常,直到 11 月。但是当我选择 12 月时,它会强制关闭。请看代码。
// ---------------- For DatePicker ----------------
@Override
protected Dialog onCreateDialog(int id) {
if(date.toString().length() > 0)
{
//12/31/1986
cmonth =(Integer.parseInt(date.substring(0,2)));
cday =(Integer.parseInt(date.substring(3,5)));
cyear =(Integer.parseInt(date.substring(6,10)));
}
else
{
Calendar c = Calendar.getInstance();
cyear = c.get(Calendar.YEAR);
cmonth = c.get(Calendar.MONTH);
cday = c.get(Calendar.DAY_OF_MONTH);
}
switch (id) {
case DATE_DIALOG_ID:
//return new DatePickerDialog(ProfileSetting.this, mDateSetListener, cyear, cmonth-1, cday); //Gets forceclose when it comes to December month
return new DatePickerDialog(ProfileSetting.this, mDateSetListener, cyear, cmonth, cday); // works till November
}
return null;
}
【问题讨论】:
-
尝试使用注释行。即“返回新的 DatePickerDialog(ProfileSetting.this, mDateSetListener, cyear, cmonth-1, cday);"。
-
发布异常堆栈,但原因可能是日历使用 0 -11 作为月份,但 DatePickerDialog 使用 0 -11 或 1-12,具体取决于区域设置
-
@Raj 我已经使用了该注释行。但问题是一样的。所以我从月份中删除了-1。但没有解决办法。
-
E/AndroidRuntime(7680): FATAL EXCEPTION: main E/AndroidRuntime(7680): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.Etl/com.android.More. ProfileSetting}:java.lang.NullPointerException E/AndroidRuntime(7680):原因:java.lang.NullPointerException E/AndroidRuntime(7680):在 com.android.More.ProfileSetting.setAllDatailView(ProfileSetting.java:437) E/AndroidRuntime (7680): 在 com.android.More.ProfileSetting.onCreate(ProfileSetting.java:233)
标签: java android datepicker forceclose