java.lang.NoSuchMethodError:android.app.DatePickerDialog.getDatePicker

时间:2014-04-21 06:38:18

标签: android date android-datepicker

我得到了

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)

1 个答案:

答案 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"/>