Android的 - 事件侦听器(Android - event listener)

2019-07-29 04:15发布

我希望这将是简单的问题。 我的主要活动,在这个活动我创造了一些类的实例。 如何发送一些事件形成一个类最主要的一个? 如何设置某种监听器类之间发送通知。 唯一的选择是什么,我知道/现在使用的是保持参照父类和直接调用从子类的一些功能。

我不知道是否有可能创造这样的ActionScript中,在那里我可以打电话dispatchEvent(新的事件(“名字”)),后来设置的addEventListener(“名”的功能)?

Answer 1:

如果“我实现一些类”意味着你已经宣布你的Activity类比嵌套的非静态内部类的嵌套类将具有对父类对象的引用。

在一般情况下,你总是可以创建调度程序/侦听模式你的自我。 创建侦听器接口以及的addListener或setListener方法添加到类,将调度事件。

听者的实施例:

public interface IAsyncFetchListener extends EventListener {
    void onComplete(String item);
    void onError(Throwable error);
}

事件调度器的实施例:

public class FileDownloader {
    IAsyncFetchListener fetchListener = null;
    ...
    private void doInBackground(URL url) {
        ...
        if (this.fetchListener != null)
            this.fetchListener.onComplete(result);
    }

    public void setListener(IAsyncFetchListener listener) {
        this.fetchListener = listener
    }
}

与事件监听器类的实施例:

public class MyClass {

    public void doSomething() {
        FileDownloader downloader = new FileDownloader();

        downloader.setListener(new IAsyncFetchListener() {

            public void onComplete(String item) {
                // do something with item
            }

            public void onError(Throwable error) {
                // report error
            }
        });

        downloader.start();
    }
}


Answer 2:

只要落实生成的事件类的监听(或听众的名单)。

当产生一个事件遍历这个列表,并呼吁所有听众必须实现的方法(通过接口也许?)

希望它的帮助下,JQCorreia



文章来源: Android - event listener