我正在使用标准日期选择器来允许用户选择一个日期。在此之后,我将计算当前日期与所选日期之间的日期。日期选择器使用时崩溃
问题是当日期选择器从应用程序崩溃中解雇时,即使我在将它放入joda时间API之前工作。我使用的日期选择器的代码是: -
mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
mPickDate = (Button) findViewById(R.id.pickDate);
// add a click listener to the button
mPickDate.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
//get the current date
final Calendar c = Calendar.getInstance();
cYear = c.get(Calendar.YEAR);
cMonth = c.get(Calendar.MONTH);
cDay = c.get(Calendar.DAY_OF_MONTH);
Date past = new Date(cYear, cMonth, cDay); // current Date
Date today = new Date(mYear, mMonth, mDay); // date Choosen by the user
int days = Days.daysBetween(new DateTime(past), new DateTime(today)).getDays();
mDateDisplay.setText(""+days);
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
//updateDisplay();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,
mDateSetListener,
mYear, mMonth, mDay);
}
return null;
}
我有一个正在被引用的updateDisplay()方法,但我评论过的一切用它做出来,因为我不认为我需要它我正在尝试做什么。对于那些有兴趣在这里它是:
private void updateDisplay() {
mDateDisplay.setText(
new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("-")
.append(mDay).append("-")
.append(mYear).append(" "));
}
人们问的logcat的输出这里是
03-17 17:47:42.343:E/AndroidRuntime(8122):致命异常:主要 03-17 17:47:42.343:E/AndroidRuntime(8122):java.lang.IllegalArgumentException:current应该是> = start并且< = end 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.widget.NumberPicker.setCurrent(NumberPicker.java:288) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.widget.DatePicker.updateDaySpinner(DatePicker.java:364) E:/ AndroidRuntime(8122):at android.widget.DatePicker.updateSpinners(DatePicker.java:350) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.widget.DatePicker.init(DatePicker.java:346) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.app.DatePickerDialog。(DatePickerDialog.java:124) 03-17 17 :47:42.343:E/AndroidRuntime(8122):at android.app.DatePickerDialog。(DatePickerDialog.java:83) 03-17 17:47:42.343:E/AndroidRuntime(8122):at com.b00348312.workout。 WorkoutChoice.onCreateDialog(WorkoutChoice.java:113) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.app.Activity.onCreateDialog(Activity.java:2513) 03-17 17:47: 42.343:E/AndroidRuntime(8122):在android.app.Activity.createDialog(Activity.java:888) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.app.Activity.showDialog(Activity.java:2588) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.app.Activity.showDialog(Activity.java:2555) 03-17 17:47:42.343:E/AndroidRuntime(8122):at com.b00348312.workout.WorkoutChoice $ 2.onClick(WorkoutChoice.java:49) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.view.View.performClick(View.java:2408) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android .view.View $ PerformClick.run(View.java:8817) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.os.Handler.handleCallback(Handler.java:587) 03- 17 17:47:42.343:E/AndroidRuntime(8122):在android.os.Handler.dispatchMessage(Handler.java:92) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.os 。厕所per.loop(Looper.java:144) 03-17 17:47:42.343:E/AndroidRuntime(8122):at android.app.ActivityThread.main(ActivityThread.java:4937) 03-17 17:47: 42.343:E/AndroidRuntime(8122):在java.lang.reflect.Method.invokeNative(本地方法) 03-17 17:47:42.343:E/AndroidRuntime(8122):在java.lang.reflect.Method.invoke (Method.java:521) 03-17 17:47:42.343:E/AndroidRuntime(8122):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:858) 03-17 17 :47/42.343:E/AndroidRuntime(8122):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 03-17 17:47:42.343:E/AndroidRuntime(8122):at dalvik .system.NativeStart。主(本地方法)
当“应用程序崩溃”时,总是看看logcat说的是什么时候。 (或在这里发布,所以我们可以看到它,这使得它更容易帮助) – Sprigg 2012-03-13 17:02:21
发布您的logcat – 2012-03-14 05:46:06