Android自定义事件监听器

假设我想为我的class级做一个自己的事件监听器,那我该怎么做? 我是否需要手动维护一个线程?

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

创build一个将由您的活动实现的接口:

 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(); } } 

同样,您可以创build所需的特定事件。 (例子可以触摸,等待2秒钟,然后释放 – 你需要在触摸事件中做一些逻辑)。

在您的活动中,您可以使用customView对象来设置一个eventListener:

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

这可以通过以下方式完成

首先创build一个接口类:

 public interface OnStopTrackEventListener { public void onStopTrack(); } 

然后创build控制界面的类:

 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 } });