Comunicación diálogos

Posted by in Android, Diálogos, Interfaz gráfica

Como se vio anteriormente los diálogos son ventanas flotantes que o bien muestran información o bien requieren de información al usuario. Ya se vio como poder generarlos y personalizarlos pero falta por ver como se pueden comunicar, ya que la información que se introduzca en el cuadro de dialogo pertenecerá al ámbito del cuadro y por lo tanto no saldrá de la clase donde está creado a no ser que se programe dicha comunicación.

Al ser fragments, no deja de ser una comunicación se realiza de la misma forma. Puede ser de dos tipos: por interfaces de comunicación o por argumentos:

Comunica diálogo con la actividad

Para poder pasar un dato que se ha introducido o seleccionado en un cuadro de dialogo se realiza mediante interfaces. Para ello se define una interfaz en la clase del cuadro de diálogo y se instancia un objeto de la misma en el método onAttach igualándolo al contexto. Esto tan solo funcionará si la interfaz está implementada en la clase que representa el contexto. Cuando se realice la acción deseada se llamará al objeto y con el al método deseado

En la clase que genera el diálogo se implementará la interfaz, la cual obliga a escribir el método con su comportamiento. Este método se ejecutará en el momento que se seleccione una acción en el cuadro de diálogo

Comunicar la actividad con el diálogo

En el caso de necesitar mandar un dato desde la actividad hasta el diálogo se utilizará un método estático que cree el diálogo con el argumento que se le pase por parámetros. En dicho método se devolverá un objeto de tipo dialogo con los argumentos puestos. En el método onAttach se recuperarán y se podrá utilizar en el método onCreateDialog

Una vez hecho esto en la clase que crea la actividad se creará el diálogo llamando al método estático con el dato que se quiera pasar