2013-05-29 80 views
0

我發現在android的事件處理中有兩種風格的代碼編寫。一種是調用類似setOnClickListener的方法,並在java中傳遞一個匿名類,另一種方法是在onClick上添加一個名爲的xml屬性,並在Activity中寫入相應的方法,如下所示。不同風格的android事件處理

<Button 
android:id="@+id/idButtonTest1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/button_test1" 
android:onClick="myClickButton1"/> 

我想知道哪一個是OOP的角度更好(或MVC的觀點),哪一個更容易在將來改變?

+1

兩者相同,沒有太大的區別。 –

回答

1

兩者都是相同的,唯一的區別是碎片。

如果您爲xml中的視圖設置偵聽器,則方法必須位於託管此元素的活動中。

如果您的帶有onClick監聽器的片段將在不同的活動中託管,並且您在xml中設置onClick您必須在所有活動中實施相同的方法。 在這種情況下,最好在片段類中實現onClickListener接口,並在onCreateView()方法的代碼中爲可點擊視圖設置監聽器。

+0

好吧,除非處理fragment,否則沒有太大的區別。我收到了很多 – York

0

這兩種方式沒有後端差異。如果你使用android:onclick屬性,那麼java爲你設置onClickListener

但爲維護我認爲屬性稍好(個人意見)。例如

  1. 您不需要從代碼中設置TheOnclickLister。所以不需要誇大這個觀點。
  2. 如果視圖ID已更改,則對代碼沒有影響。

但上述優點太小了。

+0

好的,但經過認真考慮之後,我更喜歡在java代碼中編寫onClickListener,因爲我想將視圖和控制器分開一點。總之,我明白了。並沒有太大區別。謝謝 – York

+0

@henry yes絕對有你自己的選擇。因爲兩者幾乎都是相同的,所以你最好選擇一個讓你感覺舒服的產品。 – stinepike