假设我想为自己的班级创建自己的事件监听器,该怎么做?我需要手动维护线程吗?
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秒钟然后松开-您需要在touch事件中执行一些逻辑操作)。
在您的活动中,可以使用customView对象将eventListener设置为:
customView.setCustomEventListener(new OnCustomEventListener() { public void onEvent() { //do whatever you want to do when the event is performed. } });