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

  • ¿Cómo desactivar el golpe de sólo el cajón de navegación derecho?
  • Tener una instancia de actividad
  • ¿Cómo agregar la barra de acción de la biblioteca de soporte en PreferenceActivity?
  • ANDROID: Estado de actividad después de pulsar el botón de retroceso
  • Intención de envío de la clase BroadcastReceiver a la actividad actualmente en ejecución
  • ¿Cómo iniciar una actividad desde una clase java?
  • Intención con el extra antiguo en onCreate () para singleTask Actividad
  • Android - onStop () se llamará con un retardo
  • Android ClassNotFoundException for Support v7 TestActivity
  • Pantalla completa en WindowManager
  • 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.