您好,我想爲多個Activity使用唯一的處理程序。我可以這樣做嗎?是否可以使用One UI Handler進行多個活動?
回答
增添幾分對屋大維的回答,你實際上有一個單一的處理程序類,但每個活動一個實例。
例如:
public class MyHandler extends Handler {
// Keep a weak reference to the activity owning the handler
private WeakReference<Activity> activityRef;
public MyHandler(Activity a) {
this.activityRef = new WeakReference<Activity>(a);
}
public void handleMessage(Message msg) {
// do your stuff here, for instance, finish the activity
if (activityRef.get()!=null) {
activityRef.get().finish();
}
}
}
在活動
然後:
public class MyActivity extends Activity {
protected MyHandler handler;
public void onCreate() {
// This is where you'll re-use the handler code
handler = new MyHandler(this);
}
}
嗯有趣。我認爲Listener的意思是說Handler,現在當我坐下來思考它時,我意識到確實存在一個Handler類。 :D – 2011-04-26 13:27:56
那麼推理是一樣的,它只是擴展的類或實現的接口將會改變。 – 2011-04-26 13:30:07
感謝馬文和屋大維爲您提供的答案。現在我想通過片段類型,如一個活動是主人,另一個是奴隸活動。 – Mak 2011-04-26 13:53:16
聲明此處理程序爲static
並訪問它:MyClass.myHandler
。
這不是最好的主意。 – 2011-04-26 13:17:03
爲什麼這不是最好的主意。爲什麼處理程序不能是靜態的? – senzacionale 2012-12-03 16:04:39
當然。創建一個實現所需接口並在需要時實例化的新類。
讓我們以OnClickListener
爲例。創建一個班級ExternalClickListener
。
public class ExternalClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// Do whatever you want.
}
}
現在,當你想將其放置在Button
它會是
btn.setOnClickListener(new ExternalClickListener());
感謝Octavian和Marvin爲您提供的答案。現在我想通過片段類型,如一個活動是主人,另一個是奴隸活動。 – Mak 2011-04-26 13:54:13
- 1. 活動是否需要Android中的Handler?
- 2. 是否可以使用Jquery UI進行定位
- 3. 是否可以使用多個文件進行Redshift交易?
- 4. 是否可以使用多個私鑰(PHP)進行加密?
- 5. 使用NavigationDrawer進行多個活動
- 6. Android:是否可以引用第二個活動中的活動?
- 7. 是否可以有多個啓動器活動?
- 8. 是否可以對多個偵聽器進行回調?
- 9. 是否可以使用DRBD進行MySQL主動 - 主動羣集?
- 10. 是否有可能從android活動運行ui自動化?
- 11. 是否可以對LinearLayout進行滾動
- 12. 是否可以完成調用活動
- 13. 是否可以在UI Automator中進行API調用Android
- 14. 是否可以調用使用一個主要活動多個XML佈局,而無需創建新的活動
- 15. 是否可以使用CouchDB視圖進行多路連接?
- 16. 是否可以顯示多視圖兩個活動指數在
- 17. 在一項活動中是否可以使用多個相同的裝載器?
- 18. 是否可以使用One-Click桌面通知?
- 19. 是否可以在同一個表上進行多個連接?
- 20. 是否可以使用java.awt.Robot進行水平鼠標滾動?
- 21. 是否可以使用SAPb1 Testcomposer進行數據驅動測試?
- 22. 是否可以使用壓扁對QML進行自動測試?
- 23. 是否可以使用AJAX(Javascript)與Gmail進行互動?
- 24. 是否可以使用LINQ進行動態數據透視?
- 25. 有多少用戶可以通過One MongoDB C++驅動程序進行連接?
- 26. 是否可以在路線中進行多部分動作?
- 27. 是否可以啓動一個活動作爲一個新進程
- 28. 是否可以在.net中創建多進程UI?
- 29. One AlertDialog,用於多項活動?
- 30. 檢測可可動畫是否正在進行(使用布爾),以防止多個同時動畫
究竟你是什麼意思?一個'Handler'或者一個'Listener'? – 2011-04-26 13:28:29