Java 日历视图不存在-正在尝试实现DatePickerDialog
我试图实现一个DatePickerDialog,当用户点击文本框时弹出。一旦设置了日期,我会尝试将文本框的文本设置为日期的格式化版本-听起来很简单,是吗 我收到一个错误,告诉我传递到DatePickerDialog的onDateSet事件处理程序的DatePicker对象的日历视图不存在!!为什么会这样?我想不出来。任何帮助都将不胜感激 仅供参考:我的目标是API 23,最小API 19,在API 22上运行此功能 这是我的EditText的OnClickListener的代码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
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();
}
很有效,谢谢。我不知道它不再受支持了。