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