我想在一個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);
}
正如我所說,這未能真正找到碎片,幾乎一樣糟糕,它會立即把它們顯示在活動開始時,我不想。
謝謝。