我試圖在我的應用程序視圖上實現OnClick
行爲。由於我是Android新手,並且想知道如果將此傳遞給View.OnClickListener
接口將會是更好的選擇,或者使用setOnclickListener
匿名類來控件。至於我,我覺得通過這可能會導致整個活動和它的子元素到特定的小部件,因此有更多的內存消耗,以避免內存泄漏,這是最好的方法。setOnclickListener vs Activity implements View.OnClickListener
回答
實際上,當我們實現OnClickListener是因爲我們有多個或兩個單擊項目。就像如果我有一個佈局10個按鈕和我寫的每一個點擊監聽器:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button2setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
它不是一個良好的編程習慣這就是爲什麼我們實現OnClickListener譜寫的onClick的所有點擊監聽器()。 因此,您在將來進行任何更改時都很容易。
否則,如果你有單個按鈕,那麼你可以使用setOnClickListener()。
這兩者之間沒有太大的區別。它的所有關於Android的良好編碼習慣。 :)
它的一切都好,但我認爲實現一個接口,然後傳遞使用這意味着我們正在創建一個活動的完整引用到特定的小部件,所以可能複製與活動相關的所有內存開銷。而在傳遞接口作爲匿名類時,我們只是傳遞特定的接口而不是活動。 –
您還可以使用XML格式file.its容易
android:onClick = "ButtonOne"
屬性!
我不是在問什麼是簡單的,我只是從另一個角度思考它是內存管理。 –
AFAIK所有三種方法都使用幾乎相同的內存。要考慮的問題是,哪一個是良好的編碼實踐。這取決於情況。實現View.OnClickListener和使用android:onClick =「ButtonOne」是優選的,然後使用setOnClickListner爲每個按鈕,在我看來。 –
- 1. setOnclickListener VS OnClickListener VS View.OnClickListener
- 2. RecyclerView.OnClickListener VS View.OnClickListener
- 3. Intents on implements View.onClickListener null對象引用
- 4. 與setOnClickListener(本)和setOnClickListener內存泄漏(新View.OnClickListener(){})
- 5. 方法setOnClickListener(new View.OnClickListener(){})是未定義的類型imageButton1
- 6. Theme.AppCompat.Light actionbaractivity vs activity
- 7. view.onclicklistener無法實現
- 8. Android setOnClickListener錯誤
- 9. 類型View中的方法setOnClickListener(View.OnClickListener)不適用於參數(起點)
- 10. Android Fragment vs. Activity Group
- 11. View.OnClickListener不工作
- 12. View.OnClickListener,方法或類?
- 13. 無法實例類型View.OnClickListener
- 14. implements onChildClickListener
- 15. setOnClickListener的按鈕
- 16. android eclipse setOnClickListener
- 17. 在View.OnCLickListener
- 18. android開發View.OnClickListener錯誤
- 19. DialogFragment vs Activity with Dialog主題
- 20. android View.OnClickListener not trigger
- 21. setOnclickListener在我的活動中出錯
- 22. setOnClickListener(this)出錯
- 23. SetOnClickListener的類型爲TextView
- 24. Java instanceof implements/extends
- 25. intergerSet implements Comparable
- 26. CoffeeScript,實現'implements'
- 27. 實施View.OnclickListener,指setOnClickListener到「這個」變量......導致空指針異常而未能啓動活動
- 28. FindViewByID在setOnClickListener上返回null
- 29. setOnClickListener錯誤
- 30. 我的setOnClickListener()
最好的選擇是實現View.OnClickListener。它會減少一些代碼行,並容易在一個塊中保留所有的點擊事件。 – Nas
@Nas yup我知道這一點,但我對內存消耗很好奇。 –
也許它會減少你的文件大小的一些內存(空間),但是兩者都會引用相同的類,並且工作原理相同,因此它會分配相同數量的內存(RAM)。 – Nas