Пользовательский прослушиватель событий Android

Скажем, я хочу сделать свой собственный прослушиватель событий для своего класса, как мне это сделать? Нужно ли поддерживать поток вручную?

Solutions Collecting From Web of "Пользовательский прослушиватель событий Android"

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

Создайте интерфейс, который будет реализован вашей деятельностью:

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

Теперь вам нужно знать, когда событие действительно происходит. Например, когда пользователь касается точки на экране, переопределите метод onTouchEvent:

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

Аналогичным образом вы можете создать определенное событие, которое вы хотите. (Примеры могут касаться, ждать ровно 2 секунды и выпускать – вам нужно будет сделать некоторую логику внутри события касания).

В своей деятельности вы можете использовать объект customView для установки eventListener как такового:

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

Это можно сделать следующим образом

Сначала создайте класс интерфейса:

 public interface OnStopTrackEventListener { public void onStopTrack(); } 

Затем создайте класс, который управляет интерфейсом:

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

Вот и все. Давайте использовать его сейчас

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