from custom codepath activity android alertdialog android-dialogfragment dialogfragment

android - custom - Ventajas de DialogFragment sobre AlertDialog



import dialog android (2)

Use DialogFragment en Diálogo:

  • Desde la introducción del nivel de API 13 :

    el método showDialog de Activity está en desuso . No es aconsejable invocar un cuadro de diálogo en otro lugar del código, ya que deberá gestionar el diálogo usted mismo (por ejemplo, cambio de orientación). No usar showDialog dará lugar a excepciones ocasionales, el diálogo no está vinculado a ninguna actividad.

    Nota sobre showDialog:

    Referencia de Diálogo: Las actividades brindan una facilidad para administrar la creación, guardar y restaurar diálogos. Consulte onCreateDialog (int), onPrepareDialog (int, Dialog), showDialog (int) y dismissDialog (int). Si se usan estos métodos, getOwnerActivity () devolverá la actividad que administró este diálogo.

  • Diferencia entre DialogFragment y AlertDialog

    Una cosa que viene a la mente al leer su pregunta. ¿Son tan diferentes? Un http://developer.android.com/reference/android/app/DialogFragment.html es bastante similar a un Dialog, simplemente está envuelto dentro de un fragmento. De la referencia de Android con respecto a DialogFragment:

    Un DialogFragment es un fragmento que muestra una ventana de diálogo, flotando en la parte superior de la ventana de su actividad. Este fragmento contiene un objeto Dialog, que se muestra según corresponda en función del estado del fragmento. El control del diálogo (decidir cuándo mostrarlo, ocultarlo, descartarlo) debe hacerse a través de la API http://developer.android.com/reference/android/app/DialogFragment.html , no con llamadas directas en el diálogo.

  • Otras notas

    • Los fragmentos son una evolución natural en el marco de Android debido a la diversidad de dispositivos con diferentes tamaños de pantalla.
    • DialogFragments y Fragments están disponibles en la biblioteca de soporte, lo que hace que la clase se pueda usar en todas las versiones actuales de Android.

Esta pregunta ya tiene una respuesta aquí:

Al desarrollar una aplicación para Android, he leído que se recomienda utilizar DialogFragment lugar de usar directamente un AlertDialog para mostrar alertas y confirmaciones.

Esto se hace, por ejemplo, en la documentación de DialogFragment: http://developer.android.com/reference/android/app/DialogFragment.html

La gente también dice que prefiere esto aquí: Android DialogFragment vs Dialog

Me gustaría saber las ventajas de este enfoque, ya que el código se vuelve más complejo.

Gracias


Esto es facil.
DialogFragment es un fragmento. Entonces, ¿qué puede proporcionar un fragmento mientras que otros objetos no pueden?
Son las devoluciones de llamada del ciclo de vida.
Entonces, con DialogFragment, puede ser muy poderoso y hace que su código sea mucho más limpio.
¿Alguna vez has visto pérdidas de ventanas si no cerraste un cuadro de diálogo cuando se destruía su actividad? Entonces, para evitar eso, ¿alguna vez ha intentado cerrar el diálogo cuando se llamó a OnPause ()? Entonces, para hacer eso, ¿alguna vez tuvo que hacer una referencia de ese diálogo a un objeto de nivel de clase?
Con DialogFragment, todo se maneja.
Y obtienes todas las devoluciones de llamadas del ciclo de vida.
Luego puede proporcionar más inteligencia al diálogo y hacer que haga un poco de trabajo inteligente por sí mismo en lugar de actividad diciéndole qué hacer.