我希望这将是简单的问题.
我有主要的活动,在这个活动中我创建了一个类的一个实例.如何将一个事件形式发送到主要的一个类?如何设置某种监听器在类之间发送通知.只有我所知道/使用的选项是继续引用父类,并直接从子类调用一些函数.
我有主要的活动,在这个活动中我创建了一个类的一个实例.如何将一个事件形式发送到主要的一个类?如何设置某种监听器在类之间发送通知.只有我所知道/使用的选项是继续引用父类,并直接从子类调用一些函数.
我想知道是否可以在ActionScript中创建类似的东西,我可以在其中调用dispatchEvent(new Event(“name”)),然后再安装addEventlistener(“name”函数)?
解决方法
如果“我实现一些类”意味着您已经在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(); } }