我得到了
java.lang.NoSuchMethodError: android.app.DatePickerDialog.getDatePicker
这个例外,当我在 android 2.3.3 上使用我的DatePickerDialog
时。我知道 getDatePicker()
可以从 11 api 获得,但所有其他方法都可以从api 1获得。
如何解决此问题?我看过this,但它不起作用。
dpdBegin = new DatePickerDialog(this,
datePickerListener, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
//exception on this line
tvPeriodFrom.setText(
(prepareDate(dpdBegin.getDatePicker().getDayOfMonth())) + "-" + prepareDate(dpdBegin.getDatePicker().getMonth() + 1) +
"-" + dpdBegin.getDatePicker().getYear());
dpdBegin = new DatePickerDialog(this,
datePickerListener, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
//Set dates to textViews
tvPeriodFrom.setText(
(prepareDate(dpdBegin.getDatePicker().getDayOfMonth())) + "-" + prepareDate(dpdBegin.getDatePicker().getMonth() + 1) +
"-" + dpdBegin.getDatePicker().getYear());
在日志中
04-21 06:49:57.833: ERROR/AndroidRuntime(399): FATAL EXCEPTION: main
java.lang.NoSuchMethodError: android.app.DatePickerDialog.getDatePicker
at ua.khuta.mobilereception.EventsActivity.onCreate(EventsActivity.java:88)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
如果您想获得在日期选择器中选择的日期,您可以使用此代码
Button bt_setdate=(Button) findViewById(R.id.bt_setdate);
bt_setdate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID);
// get the current date
}
});
和onCreate()
之外@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
return new DatePickerDialog(this, datePickerListener,
year, month,day);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
year = selectedYear;
month = selectedMonth;
day = selectedDay;
String selmonth=cm.getMonth(month);
bookingdate=String.valueOf(year)+"-"+String.valueOf(month)+"-"+String.valueOf(day);
}
};
bookingdate包含所选日期..并将其添加到您的布局
<DatePicker
android:id="@+id/dpResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>