2012-01-12 51 views

回答

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事件。如果是這樣,那麼這真的很奇怪 - 你會如何顯示那些不在活動中的視圖?

相關問題