我想在一个Activity中多次弹出一个timepicker和一个datepicker。Android DialogFragment:我可以重新使用,还是必须重新使用另一个?
我不清楚自己是否应该制作每个实例,并根据需要显示它们,或者每次需要弹出对话框时都应该创建新实例。
而我很困惑findFragmentByTag/findFragmentById。看来只有当前显示片段才能找到片段?
但是,如果没有找到它,并且我创建一个新的Fragment并使用相同的标记显示它,我会得到一个IllegalStateException。我如何在onCreate中恢复一个片段?
目前,我这样做:
FragmentManager fm = getSupportFragmentManager();
if (savedInstanceState == null) {
timePicker = new RadialTimePickerDialog();
datePicker = new CalendarDatePickerDialog();
fm.beginTransaction().add(timePicker, FRAGMENT_TIME_PICKER)
.add(datePicker, FRAGMENT_DATE_PICKER).commit();
} else {
timePicker = (RadialTimePickerDialog)
fm.findFragmentByTag(MedicationCollapsePanel.FRAGMENT_TIME_PICKER);
datePicker = (CalendarDatePickerDialog)
fm.findFragmentByTag(MedicationCollapsePanel.FRAGMENT_DATE_PICKER);
}
正如我所说,这未能真正找到碎片,几乎一样糟糕,它会立即把它们显示在活动开始时,我不想。
谢谢。