Intereting Posts
Почему уровень API Android 9 устарел? Рисование в воздухе с телефона Android Java.lang.UnsupportedOperationException: addView (View, LayoutParams) не поддерживается в AdapterView Доступ к приложениям Android (для людей с ограниченными возможностями) с помощью PhoneGap Что отличается от @ + id / android: list и @ id / android: list? Код формата студии Android не будет автоматически прерывать линию Android: назначение константного значения xml-элементу В чем разница между Smack и aSmack? Градиент развертки: что это такое и его примеры Эннументы и андроидная аннотация intDef Создайте приложение для Android, которое действует как ярлык для нашего мобильного сайта Случайное исключение android.database.sqlite.SQLiteException: невозможно открыть файл базы данных Как выводить сообщения на консоль Eclipse при разработке для Android Как принудительно установить приложение Android в среду разработки? Android: Захват документа и сканирование с помощью камеры

Преимущества DialogFragment перед AlertDialog

При разработке приложения для Android я читал, что рекомендуется использовать DialogFragment вместо прямого использования AlertDialog для отображения предупреждений и подтверждений.

Это делается, например, в документации DialogFragment: http://developer.android.com/reference/android/app/DialogFragment.html

Люди также говорят, что они предпочитают это здесь: Android DialogFragment vs Dialog

Я хотел бы знать преимущества этого подхода, поскольку код становится более сложным.

благодаря

Solutions Collecting From Web of "Преимущества DialogFragment перед AlertDialog"

Используйте диалог DialogFragment over Dialog:


  • Начиная с введения уровня API 13 :

    Метод showDialog из Activity устарел . Вызов диалога в другом месте кода не рекомендуется, так как вам придется самостоятельно управлять диалогом (например, изменение ориентации). Не использование showDialog приведет к случайным исключениям, диалог не связан с какой-либо деятельностью.

    Примечание о showDialog:

    Ссылка на Dialog: Activities предоставляет возможность управлять созданием, сохранением и восстановлением диалогов. См. OnCreateDialog (int), onPrepareDialog (int, Dialog), showDialog (int) и rejectDialog (int). Если эти методы используются, getOwnerActivity () вернет действие, управляющее этим диалогом.

  • Различия DialogFragment – AlertDialog

    Одна вещь, которая приходит на ум при чтении вашего вопроса. Разве они разные? Диалоговый фрагмент довольно похож на диалог, он просто обернут внутри фрагмента. Из справки Android относительно DialogFragment:

    Диалоговый фрагмент – это фрагмент, который отображает диалоговое окно, плавающее поверх окна его активности. Этот фрагмент содержит объект Dialog, который он отображает соответствующим образом на основе состояния фрагмента. Контроль диалога (выбор, когда показывать, скрывать, отклонять его) должен выполняться через API здесь , а не с прямыми вызовами в диалоговом окне.

  • Другие примечания

    • Фрагменты – естественная эволюция в структуре Android из-за разнообразия устройств с разными размерами экрана.
    • DialogFragments и Fragments доступны в библиотеке поддержки, что делает класс пригодным для использования во всех современных версиях Android.

Это легко.
DialogFragment – это фрагмент. Итак, что может предоставить фрагмент, пока другие объекты не могут?
Это обратные вызовы жизненного цикла.
Таким образом, с DialogFragment, он может быть очень мощным и делает ваш код намного чище.
Вы когда-нибудь видели утечки окон, если вы не закрывали диалог, когда его активность разрушалась? Итак, чтобы это предотвратить, пытались ли вы когда-либо закрыть диалог, когда вызывается onPause ()? Чтобы сделать это, вам когда-либо приходилось ссылаться на этот диалог на объект уровня класса?
С помощью DialogFragment все обрабатывается.
И вы получаете все обратные вызовы жизненного цикла.
Затем вы можете обеспечить больше интеллекта в диалоговом окне и заставить его делать некоторые умные работы самостоятельно, а не активность, говоря им, что делать.