Android – detector de eventos

Espero que esto sea simple pregunta. Tengo actividad principal, en esta actividad creo una instancia de alguna clase. ¿Cómo enviar algún evento de una clase a la principal? Cómo configurar algún tipo de escucha para enviar notificaciones entre clases. Sólo opción lo que sé / uso ahora es mantener la referencia a la clase padre y llamar directamente a alguna función de la clase hijo.

Me pregunto si es posible crear algo como es en ActionScript, donde puedo llamar a dispatchEvent (nuevo evento ("nombre")) y más tarde la instalación addEventlistener (función "nombre") ??

Si "implemento alguna clase" significa que ha declarado una clase anidada dentro de su clase de actividad que la clase no estática anidada tendrá una referencia al objeto de clase padre.

En general, siempre se puede crear patrón de despachador / oyente de su auto. Cree la interfaz de escucha y agregue el método addListener o setListener a la clase que distribuirá el evento.

Ejemplo de escucha:

public interface IAsyncFetchListener extends EventListener { void onComplete(String item); void onError(Throwable error); } 

Ejemplo de despachador de eventos:

 public class FileDownloader { IAsyncFetchListener fetchListener = null; ... private void doInBackground(URL url) { ... if (this.fetchListener != null) this.fetchListener.onComplete(result); } public void setListener(IAsyncFetchListener listener) { this.fetchListener = listener } } 

Ejemplo de clase con el detector de eventos:

 public class MyClass { public void doSomething() { FileDownloader downloader = new FileDownloader(); downloader.setListener(new IAsyncFetchListener() { public void onComplete(String item) { // do something with item } public void onError(Throwable error) { // report error } }); downloader.start(); } } 

Basta con implementar un listener (o una lista de listeners) en la clase que genera los eventos.

Cuando se genera un evento iterar sobre esta lista y llamar a un método que todos los oyentes deben implementar (a través de una interfaz tal vez?)

Espero que ayudó, JQCorreia

  • Android: ¿Cómo actualizar una interfaz de usuario de AsyncTask si AsyncTask está en una clase aparte?
  • Iniciar Actividad desde la pantalla de preferencias (intención definida en el archivo xml)
  • GetIntent () en onResume () siempre devuelve la misma acción, ¿cómo consumirla?
  • Cómo iniciar una nueva actividad al hacer clic en el botón
  • Transición de la actividad: Realización de la parada de la actividad que no se reanuda
  • La imagen de la cámara es nula si se gira la cámara
  • Cómo iniciar / iniciar la aplicación durante el arranque Android
  • Android: cómo evitar que varias instancias de una actividad se inicien desde un widget?
  • ¿Por qué reanudar una actividad en Android causa BadTokenException?
  • ¿Cómo comprobar si se está reproduciendo música desde la aplicación de música?
  • Fragmentos en ViewPager son nulos después onresume
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.