我希望這將是一個簡單的問題。 我有主要活動,在這個活動中我創建了一些類的實例。如何將一個事件從一個類發送到主類?如何設置某種偵聽器來在類之間發送通知。我現在知道/使用的選項只是保持對父類的引用,並直接從子類調用一些函數。我想知道是否有可能創建類似於在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 EditText事件監聽器
- 2. Android,事件監聽器?
- 3. Android AudioManager事件監聽器?
- 4. 事件監聽器?
- 5. Laravel監聽器監聽多個事件
- 6. 時間事件監聽器
- 7. Android自定義事件監聽器
- 8. Android中的Softkeyboard事件監聽器
- 9. 音頻的Android事件監聽器
- 10. Android的自定義事件監聽器
- 11. Android多線程與事件監聽器
- 12. Android片段事件監聽器
- 13. android butterknife事件監聽器重複ID
- 14. Android根無障礙事件監聽器
- 15. Android:溢出圖標事件監聽器
- 16. Android事件時間監聽器
- 17. 的Android onTouch監聽事件
- 18. 點擊事件監聽器
- 19. 刪除事件監聽器
- 20. JQuery到事件監聽器
- 21. 添加事件監聽器
- 22. 回調事件監聽器
- 23. Java MySQL事件監聽器
- 24. Javascript事件監聽器?
- 25. 鼠標監聽器事件
- 26. 被動事件監聽器
- 27. 切換事件監聽器
- 28. 觸發事件監聽器
- 29. 事件監聽器問題
- 30. Symfony2的事件監聽器
「我實現一些類」的意思你在Activity類中聲明瞭一個嵌套類? – Chopin 2012-04-27 14:49:52