gpt4 book ai didi

java - CalenderView 不存在 - 试图实现 DatePickerDialog

转载 作者:行者123 更新时间:2023-11-30 01:29:46 24 4
gpt4 key购买 nike

我正在尝试实现一个在用户单击文本框时弹出的 DatePickerDialog。设置日期后,我尝试将文本框的文本设置为日期的格式化版本 - 听起来很简单,是吧?

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

仅供引用:我的目标是 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)

最佳答案

getCalendarView() 在 post API 21 中不受支持。你可以试试这个 -

 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();
}

关于java - CalenderView 不存在 - 试图实现 DatePickerDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35928954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com