Android Custom Event Listener

Supongamos que quiero hacer mi propio oyente de eventos para mi clase, ¿cómo hago eso? ¿Debo mantener un hilo manualmente?

public class CustomView extends View(){ OnCustomEventListener mListener; : ://some code : : 

Crea una interfaz que será implementada por tu actividad:

 public interface OnCustomEventListener { void onEvent(); } public void setCustomEventListener(OnCustomEventListener eventListener) { mListener = eventListener; } 

Ahora necesita saber cuándo se está produciendo el evento. Por ejemplo, cuando el usuario toca un punto en la pantalla, anule el método TouchEvent:

 onTouchEvent(MotionEvent ev) { if (ev.getAction==MotionEvent.ACTION_DOWN) { if(mListener!=null) mListener.onEvent(); } } 

Del mismo modo, puede crear un evento específico que desee. (Los ejemplos podrían tocarse hacia abajo, esperar exactamente 2 segundos y soltar- necesitaría hacer algo de lógica dentro del evento táctil).

En su actividad, puede usar el objeto customView para establecer un eventListener como tal:

  customView.setCustomEventListener(new OnCustomEventListener() { public void onEvent() { //do whatever you want to do when the event is performed. } }); 

Se puede hacer de la siguiente manera

Primero crea una clase de interfaz:

 public interface OnStopTrackEventListener { public void onStopTrack(); } 

Luego crea la clase que controla la interfaz:

 public class Player { private OnStopTrackEventListener mOnStopTrackEventListener; public void setOnStopTrackEventListener(OnStopTrackEventListener eventListener) { mOnStopTrackEventListener = eventListener; } public void stop() { if(mOnStopTrackEventListener != null) { mOnStopTrackEventListener.onStopTrack(); } } } 

Eso es todo. Vamos a usarlo ahora

 Player player = new Player(); player.stop(); //We are stopping music player.setOnStopTrackEventListener(new OnStopTrackEventListener() { @Override public void onStopTrack() { //Code to work when music stops } });