Android自定义事件监听器

时间:2011-11-28 07:39:36

标签: android events mobile listener

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

3 个答案:

答案 0 :(得分:109)

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秒钟并释放 - 你需要在触摸事件中做一些逻辑)。

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

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

答案 1 :(得分:12)

可以通过以下方式完成

首先创建一个接口类:

var1

然后创建控制界面的类:

nil

就是这样。我们现在就用它

public interface OnStopTrackEventListener {
    public void onStopTrack();
}

答案 2 :(得分:1)

我发现this tutorial非常有益。它说明了使用自定义侦听器管理代码中的回调的四个步骤:

1。使用定义事件和相关事件数据的方法的方法将接口定义为事件协定。

2。在子对象中设置侦听器成员变量和设置器,可以为该子对象分配接口的实现。

3.Owner传递了一个侦听器,该侦听器实现了接口并处理子对象的事件。

4。当对象想要将事件传达给其所有者时,在定义的侦听器上触发事件

希望有帮助!