【问题标题】:DatePicker and TimePicker code not working together ("protected Dialog onCreateDialog(int id)" is already defined)DatePicker 和 TimePicker 代码不能一起工作(“protected Dialog onCreateDialog(int id)”已经定义)
【发布时间】:2015-07-05 13:20:38
【问题描述】:
我创建了一个应用程序,其中有一个 DatePicker 和一个 TimePicker。首先,我制作了 Datepicker,并在选择 Date 文本视图时显示它,这非常好。然后我想对 Time EditText 做同样的事情,但不是显示 DatePicker,而是应该在选择时显示 TimePicker。
在我实现 TimePicker 的代码后:错误是“受保护的 Dialog onCreateDialog(int id)”已定义,我无法使用此方法两次。
任何帮助将不胜感激,
提前致谢
【问题讨论】:
标签:
android
datepicker
timepicker
【解决方案1】:
我假设您只有一个 DialogFragment 用于日期和时间选择器...这将产生冲突,因为您已经实现了 onCreateDialog。
我通常做的是为每个组件创建另一个类,我希望有一个不同的 onCreateDialog 实现。
public class DatePickerDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
...
}
public class TimePickerDialog extends DialogFragment implements
TimePickerDialog.OnTimeSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
...
}
然后我会在活动中调用它...
DatePickerDialog dialog = new DatePickerDialog();
FragmentManager fm = getSupportFragmentManager();
dialog.show(fm, "Date Picker");
这样,您还可以为每个选择器添加自定义回调或侦听器,并在一个活动中多次使用它们。