Java 日历视图不存在-正在尝试实现DatePickerDialog

Java 日历视图不存在-正在尝试实现DatePickerDialog,java,android,datepicker,calendar,date-format,Java,Android,Datepicker,Calendar,Date Format,我试图实现一个DatePickerDialog,当用户点击文本框时弹出。一旦设置了日期,我会尝试将文本框的文本设置为日期的格式化版本-听起来很简单,是吗 我收到一个错误,告诉我传递到DatePickerDialog的onDateSet事件处理程序的DatePicker对象的日历视图不存在!!为什么会这样?我想不出来。任何帮助都将不胜感激 仅供参考:我的目标是API 23,最小API 19,在API 22上运行此功能 这是我的EditText的OnClickListener的代码 private

我试图实现一个DatePickerDialog,当用户点击文本框时弹出。一旦设置了日期,我会尝试将文本框的文本设置为日期的格式化版本-听起来很简单,是吗

我收到一个错误,告诉我传递到DatePickerDialog的onDateSet事件处理程序的DatePicker对象的日历视图不存在!!为什么会这样?我想不出来。任何帮助都将不胜感激

仅供参考:我的目标是API 23,最小API 19,在API 22上运行此功能

这是我的EditText的OnClickListener的代码

private class DateClickListener implements View.OnClickListener{

    int mYear;
    int mMonth;
    int mDay;

    public void formatDate(long selectedDate){
        mDateText.setText(DateFormat.getDateInstance().format(selectedDate));
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        //To show current date in the datepicker
        Calendar mcurrentDate=Calendar.getInstance();
        mYear=mcurrentDate.get(Calendar.YEAR);
        mMonth=mcurrentDate.get(Calendar.MONTH);
        mDay=mcurrentDate.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog mDatePicker=new DatePickerDialog(CreateOuttingActivity.this, new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                formatDate(datepicker.getCalendarView().getDate());
            }
        },mYear, mMonth, mDay);
        mDatePicker.setTitle("Select date");
        mDatePicker.show();
    }
}
以下是准确的错误跟踪:

03-10 17:52:20.750 21766-21766/... E/AndroidRuntime: FATAL EXCEPTION: main
                                                               Process: ..., PID: 21766
                                                               java.lang.UnsupportedOperationException: CalendarView does not exists for the new DatePicker
                                                                   at android.widget.DatePickerCalendarDelegate.getCalendarView(DatePickerCalendarDelegate.java:498)
                                                                   at android.widget.DatePicker.getCalendarView(DatePicker.java:377)
                                                                   at ...CreateActivity$DateClickListener$1.onDateSet(CreateActivity.java:70)
                                                                   at android.app.DatePickerDialog.onClick(DatePickerDialog.java:134)
post API 21不支持
getCalendarView()
。 你可以试试这个-

 DatePickerDialog mDatePicker=new DatePickerDialog(CreateOuttingActivity.this, new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                formatDate(getTimeFromDatePicker(view));
            }
        },mYear, mMonth, mDay);
其中getTimeFromDatePicker()的定义如下-

public long getTimeFromDatePicker(DatePicker datePicker) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth());

        return calendar.getTimeInMillis();
    }

很有效,谢谢。我不知道它不再受支持了。