Я преобразовываю приложение для использования фрагментов с помощью библиотеки совместимости.
Сейчас у меня есть несколько активностей (A B C D), которые цепляются друг за друга, у D есть кнопка "OK", которая при нажатии вызывает завершение, которое затем всплывает через onActivityResult()
, чтобы дополнительно уничтожить C и B.
Для моей версии фрагментов до Honycomb каждая активность является эффективной оберткой для фрагментов Af Bf Cf Df. Все активности запускаются через startActivityForResult()
, а onActivityResult()
внутри каждого из фрагментов может с радостью вызвать getActivity(). finish()
Проблема, с которой я сталкиваюсь, заключается в том, что в моей версии Honeycomb у меня только одна активность, A, а фрагменты Bf, Cf, Df загружаются с помощью FragmentManager
.
Я не понимаю, что нужно сделать в Df при нажатии 'OK', чтобы удалить фрагменты Df, Cf и Bf?
Я пытался сделать так, чтобы фрагмент сам выпрыгивал из стека, но это привело к исключению. onActivityResult()
бесполезен, потому что я не загрузил фрагмент с помощью startActivityForResult()
.
Я думаю об этом совершенно неправильно? Должен ли я реализовать какой-то слушатель, который взаимодействует с родительским фрагментом или активностью, чтобы выполнить pop с помощью менеджера транзакций?