Percy

Android自定义事件监听器

android

假设我想为自己的班级创建自己的事件监听器,该怎么做?我需要手动维护线程吗?


阅读 321

收藏
2020-12-01

共1个答案

小编典典

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.
    }
 });   
2020-12-01