2017-03-06 97 views
0

我有一個關於處理按鈕點擊事件的問題。 我已經看過this articleAndroid - 性能處理按鈕點擊事件之間的差異

我知道的代碼,造型,可讀的區別......但我不知道在表現這兩種方式的區別:

  • 第一種方式:

    buttonA.setOnClickListener(this)。

  • 第二種方式:

    buttonB.setOnClickListener(新View.OnClickListener(){ @覆蓋 公共無效的onClick(視圖v){// 要做些什麼 }} );

有沒有人發現了這一點?

+0

對不起,您的文章只是比較兩種方法,不是我需要知道的答案。我編輯我的問題 –

+0

[OnClick()事件和OnClickListener之間的區別?](http://stackoverflow.com/questions/7453299/difference-between-onclick-event-and-onclicklistener) –

回答

3

如果有一個你不應該擔心它,因爲它很小。 可讀性更重要。

'第二個'方法創建一個更多的對象。

0

第二種方法是創建新的View.OnClickListener,對象需要時間來創建,並使用內存來保持它們可用。我想避免在我的類中實現監聽器,我更喜歡使用匿名類(第二種方法),如果我必須在很多地方使用監聽器,而不是創建保存它的字段。

0

第一種方法實現OnCLickListener類,而第二種方法創建Anonymous類。
第一種方法將導致您的代碼更加組織和整齊,但如果您有多個按鈕,則必須向OnCLick方法添加更多代碼。
而在匿名類中,每次發生點擊事件時,都會創建一個新對象,這實際上不會影響性能。效果可以忽略不計。但是由於對象是動態創建的,這意味着一旦對象不再使用,垃圾收集器就會釋放關聯的內存。

總之,他們的表現幾乎可以忽略不計。決定使用哪一個主要取決於您的需求/要求。