java.lang.ClassCastException: ListActivity 无法转换为 DatePickerDialog
java.lang.ClassCastException: ListActivity cannot be cast to DatePickerDialog
我在实施此 Material DatePicker 时遇到问题,因为 Context
调用可能是我应该做错的。
来自 GitHub 的示例工作正常,因为对话框是由 Activity.
创建的
但是,在这种特殊情况下,我正在使用附加到 ListActivity
的 Fragment
。
我是这样称呼它的:
Calendar now = Calendar.getInstance();
DatePickerDialog dpd = DatePickerDialog.newInstance(
(DatePickerDialog.OnDateSetListener) getActivity(),
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.show(getFragmentManager(), "Datepickerdialog");
这一行 (DatePickerDialog.OnDateSetListener) getActivity()
产生了问题。它在示例中被声明为 MainActivity.this
,但我不能使用 ListActivity.this
或类似的东西。
Logcat
Process: kva.ihm, PID: 16218
java.lang.ClassCastException: kva.ihm.ParameterListActivity cannot be cast to
com.wdullaer.materialdatetimepicker.date.DatePickerDialog$OnDateSetListener
at kva.ihm.ParameterDetailFragment.onItemClick(ParameterDetailFragment.java:3839)
您的 activity 应该实现 DatePickerDialog.OnDateSetListener
以处理来自 DatePicker 的回调 void onDateSet(DatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth);
。
或者你可以使用 anonim 处理它 class:
DatePickerDialog dialog = DatePickerDialog.newInstance(new DatePickerDialog.OnDateSetListener() {
@Override
void onDateSet(DatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
//Your code.
}
}, year, monthOfYear, dayOfMonth);
愚蠢的错误。
之前@Selvin在评论中提到,实现了接口调用,因此被AndroidStudio自动导入错误关联。
提示:不要相信邪恶的汽车进口。 :)
我在实施此 Material DatePicker 时遇到问题,因为 Context
调用可能是我应该做错的。
来自 GitHub 的示例工作正常,因为对话框是由 Activity.
创建的但是,在这种特殊情况下,我正在使用附加到 ListActivity
的 Fragment
。
我是这样称呼它的:
Calendar now = Calendar.getInstance();
DatePickerDialog dpd = DatePickerDialog.newInstance(
(DatePickerDialog.OnDateSetListener) getActivity(),
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.show(getFragmentManager(), "Datepickerdialog");
这一行 (DatePickerDialog.OnDateSetListener) getActivity()
产生了问题。它在示例中被声明为 MainActivity.this
,但我不能使用 ListActivity.this
或类似的东西。
Logcat
Process: kva.ihm, PID: 16218 java.lang.ClassCastException: kva.ihm.ParameterListActivity cannot be cast to com.wdullaer.materialdatetimepicker.date.DatePickerDialog$OnDateSetListener at kva.ihm.ParameterDetailFragment.onItemClick(ParameterDetailFragment.java:3839)
您的 activity 应该实现 DatePickerDialog.OnDateSetListener
以处理来自 DatePicker 的回调 void onDateSet(DatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth);
。
或者你可以使用 anonim 处理它 class:
DatePickerDialog dialog = DatePickerDialog.newInstance(new DatePickerDialog.OnDateSetListener() {
@Override
void onDateSet(DatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
//Your code.
}
}, year, monthOfYear, dayOfMonth);
愚蠢的错误。
之前@Selvin在评论中提到,实现了接口调用,因此被AndroidStudio自动导入错误关联。
提示:不要相信邪恶的汽车进口。 :)