问题描述
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.
}
});
解决方法
假设我想为自己的班级创建自己的事件监听器,该怎么做?我需要手动维护线程吗?