我是一名.NET移動開發人員,自從我開始使用android之後,我發現唯一可以存儲視圖的事件處理程序的方法是通過活動文件或創建一個類來容納所有這些事件偵聽器。有人可以提出最好的辦法,我可以做到最少的混亂,並相應地存儲所有的事件處理程序?在開發應用程序時,應該將事件處理程序理想地存儲在哪裏?
2
A
回答
1
「混亂」有點主觀取決於您在實現事件處理程序時的效率以及您的應用程序的複雜程度。
比如我在這裏看到的示例代碼上那麼像......
button1.setOnClickListener(new View.OnClickListener {...});
button2.setOnClickListener(new View.OnClickListener {...});
button3.setOnClickListener(new View.OnClickListener {...});
在各種情況下爲每個Button
匿名聽衆往往執行非常相似的功能(Start活動1,活動開始2 ....)。最乾淨的方法是在Activity
實施View.OnClickListener
本身,然後使用...
button1.setOnClickListener(this);
......(依此類推每個Button
)則獲得View
傳遞給聽者的資源ID確定點擊的內容以及需要完成的工作。令我驚訝的是,有多少人不知道。
至於創建一個單獨的類(或類)來容納偵聽器,這取決於你進行了多少活動而變得棘手。分開維護聽衆有兩個缺點。
首先,如果你不與具有Activity
使用匿名聽衆的模型去或直接實現監聽,那意味着你將有一個活動的整體負載使用您的'(可能在某個時候被擴展)助手「班的聽衆。每次你延長你的Activity
時,你需要確保單獨的課程被更新以應對它 - 可能是看不見的,你想從你的'通用'聽衆無法處理的Activity
中得到新的東西。
第二個潛在的問題是Android的工作方式(取決於您的應用程序)。 Android Activity
應該是模塊化的 - 如果它顯示特定格式的照片或圖像或文檔,那麼它應該儘可能獨立。有一個單獨的類與衆多的監聽器在意味着一個非常簡單的Activity
意味着做一個非常簡單的任務最終加載一個類(或類),其中包含整個負載的監聽器是不相關的。
堅持簡單 - 優化每個Activity
的聽衆並保持它們獨立。如果您覺得有任何重複,請定義您自己的基類並從此處擴展。
0
目前尚不清楚你想得到什麼結果。據我所知,你不想創建任何活動子類來處理UI事件。如果是這樣,那麼這真的很奇怪 - 你會如何顯示那些不在活動中的視圖?
相關問題
- 1. Android PopupWindow事件處理程序應該去哪裏?
- 2. ASP.NET應用程序應該在哪裏存儲數據文件?
- 3. 處理中斷的程序,即中斷處理程序存儲在哪裏?
- 4. 從哪裏開始管理事務在java SOA應用程序
- 5. 在哪裏存儲我開發的應用程序?
- 6. 我應該在哪裏存儲C#應用程序的數據?
- 7. C#:你應該在哪裏放置事件處理程序委託?
- 8. 使用AutoEventWireup時,事件處理程序在哪裏連線?
- 9. 我應該在哪裏放置處理程序?
- 10. 我應該使用哪種ComboBox事件處理程序?
- 11. 哪些winJS事件處理程序應該在最小化Windows 8上的應用程序時使用?
- 12. 在ios應用程序中處理理想的超時時間
- 13. 事件處理程序應該直接響應事件嗎?
- 14. 我應該從哪裏開始開發windows phone應用程序
- 15. 我應該在哪裏將靜態數據存儲在Web應用程序中
- 16. HTML5/JS存儲事件處理程序
- 17. 我應該在哪裏處理rails應用程序中字的大小寫?
- 18. PageLoaded事件處理程序在應用程序級別
- 19. 啓動應用程序時的Android事件處理程序
- 20. 處理應用程序事件
- 21. branch.initSessionWithLaunchOptions處理程序在應用程序退出時觸發
- 22. 應用程序未打開時處理後退按鈕事件
- 23. 我應該在Android事件處理程序中將超級調用放在哪裏?
- 24. 在事件處理程序
- 25. Windows Store應用程序在哪裏存儲其本地設置?
- 26. 從Property Changed處理程序調用MessageDialog存儲應用程序
- 27. 我應該在哪裏存儲我的網絡應用程序的文件?
- 28. WP7應該在XAML中添加事件處理程序嗎?
- 29. 在Java Web應用程序中,我應該在哪裏存儲用戶照片?
- 30. Elmah部分處理程序在哪裏