Работа с DIalogs во фрагментах - PullRequest
4 голосов
/ 12 марта 2012

В моем приложении у меня есть Activity и несколько Фрагментов (Activity работает как Контроллер и Фрагменты - как представления)

В некоторых Фрагментах мне нужно показать AlertDialogs и ProgressDialogs, Activity может изменить текущий Фрагмент.

Моя проблема: активность может получать широковещательные сообщения и уведомления C2DM, и когда я создал AlertDialog, активность может изменить фрагмент, но диалог остается.Поэтому, когда пользователь нажимает на некоторые кнопки, приложение вылетает.

DIalogFragments работает как простой диалог.

Должен ли я вручную закрыть диалоговое окно или проверить, активен ли фрагмент?Есть ли встроенные инструменты?

1 Ответ

1 голос
/ 12 марта 2012

Прежде всего, я мог что-то упустить, без кода и пр., Но ...

Во-вторых: может быть, вам не следует использовать диалоги? Похоже на громоздкий пользовательский интерфейс. Просто использовать фрагменты для тех же? Хотя вы говорите, что используете DialogFragments, возможно, вы уже подумали об этом и уже использовали их в качестве «обычных» фрагментов.

В-третьих: закрыть диалоги, когда показанный фрагмент будет удален / скрыт? Используйте обратный вызов onStop (), например, во фрагменте или в более центральном месте, где вы, возможно, сохраняете текущий показывающий фрагмент и решаете отобразить новый. Чтобы закрыть диалоговое окно, вызовите «Отклонить» для объекта диалога или фрагмента или dismissDialog в действии.

См. Закрытие диалогов: http://developer.android.com/guide/topics/ui/dialogs.html#DismissingADialog

Вы все еще можете вызвать dismiss для этих DialogFragments. http://developer.android.com/reference/android/app/DialogFragment.htm

...