Acceder

Ver la Versión Completa : [ CONSULTA ] Referenciar activity que genera un customdialog


Red_Wolf
19/06/16, 15:46:05
Tengo una activity que al crearse, inicia un custumdialog con información para el usuario. Me gustaría que cuando el usuario le diera a cerrar el dialog, se llamara a una función que se encuentra dentro de la activity.
He leído que se le puede añadir un listener a la función ondismiss para detectar cuando cierra el dialog, sin embargo, me es imposible ejecutar la función ya que al encontrarse dentro del activity y no del dialog, no hay forma de hacer que funcione.

Mi pregunta es:

- ¿Desde el dialog puedo utilizar una función como argumento? En caso afirmativo, ?cómo paso una función por parámetro?

- ¿Como hago referencia la actividad sobre la que estoy creando el dialog? Es decir, si el dialog se ha llamado desde mainactivity, cómo haría para acceder al contenido de esa actividad desde el dialog?

Muchas gracias.

mocelet
19/06/16, 18:43:44
No se pueden pasar métodos como parámetro, pero siempre puedes pasar un objeto como parámetro y llamar a un método de ese objeto.

Ya que mencionas el ejemplo del onDismiss, en ese caso le estás pasando al dialog un objeto que extiende la interfaz OnDismissListener y sabes que al cerrarse va a llamar al método onDismiss del mismo. En la práctica es ejecutar tu código, aunque no sea directamente un método.

Si el código del onDismiss que dices que no te funciona está dentro de la misma actividad ni siquiera te hace falta pasar la referencia. Está claro que no puedes poner this.hazAlgo() porque lo estás llamando desde otra clase, pero supuesto que tu actividad se llame MainActivity y tenga el método hazAlgo(), puedes ejecutar desde el onDismiss() lo siguiente: MainActivity.this.hazAlgo() , que es la forma de referenciar a clases "contenedoras" dentro de una clase interna.