我希望这将是一个简单的问题。 我有主要活动,在这个活动中我创建了一些类的实例。如何将一个事件从一个类发送到主类?如何设置某种侦听器来在类之间发送通知。我现在知道/使用的选项只是保持对父类的引用,并直接从子类调用一些函数。我想知道是否有可能创建类似于在ActionScript中,我可以调用dispatchEvent(新事件(“名称”))和以后设置addEventlistener(“名称”功能)?Android - 事件监听器
9
A
回答
18
如果“我实现了一些类”意味着你已经在Activity类中声明了一个嵌套类,而非嵌套的非静态类将有一个对父类对象的引用。
通常,您可以随时创建调度员/侦听器模式。创建监听器接口并将addListener或setListener方法添加到将调度事件的类中。听众的
例子:
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();
}
}
1
只是实现一个监听器(或列表
public interface IAsyncFetchListener extends EventListener {
void onComplete(String item);
void onError(Throwable error);
}
事件调度程序示例听众)关于产生事件的类。
当产生一个事件遍历这个列表,并呼吁所有的听众都必须实现的方法(通过接口也许?)
希望它能帮助, JQCorreia
相关问题
- 1. Android AudioManager事件监听器?
- 2. Android,事件监听器?
- 3. Laravel监听器监听多个事件
- 4. Android:溢出图标事件监听器
- 5. Android多线程与事件监听器
- 6. 音频的Android事件监听器
- 7. Android的自定义事件监听器
- 8. 的Android onTouch监听事件
- 9. RxJS监听事件但稍后附加事件监听器
- 10. NHibernate事件监听器
- 11. 切换事件监听器
- 12. Gideros GTween事件监听器
- 13. Keypress事件监听器
- 14. 事件监听器在PHP
- 15. 被动事件监听器
- 16. 回调事件监听器
- 17. 事件监听器循环
- 18. NHibernate多事件监听器
- 19. javascript事件监听器
- 20. GM_setValue事件监听器
- 21. supervisord事件监听器
- 22. Javascript事件监听器
- 23. window.fetch的事件监听器
- 24. Javascript事件监听器
- 25. Symfony的事件监听器
- 26. liferay事件监听器
- 27. 鼠标监听器事件
- 28. 删除事件监听器
- 29. jQuery事件监听器
- 30. Javascript事件监听器?
“我实现一些类”的意思你在Activity类中声明了一个嵌套类? – Chopin 2012-04-27 14:49:52