Jestem zszokowany, że nikt o tym nie mówił, ale bądź ostrożny, chociaż android:onClick
XML wydaje się być wygodnym sposobem obsługi kliknięć, setOnClickListener
implementacja robi coś więcej niż dodanie onClickListener
. Rzeczywiście, ustawia właściwość view clickable
na true.
Chociaż może to nie stanowić problemu w większości implementacji Androida, według konstruktora telefonu, domyślnie przycisk button ma zawsze wartość clickable = true, ale inne konstruktory w niektórych modelach telefonu mogą mieć domyślną wartość clickable = false w widokach innych niż Button.
Więc ustawienie XML nie wystarczy, musisz cały czas myśleć, aby dodać android:clickable="true"
brak przycisku, a jeśli masz urządzenie, w którym wartość domyślna jest klikalna = prawda i zapomnisz choć raz umieścić ten atrybut XML, nie zauważysz problem w czasie wykonywania, ale dostaniesz informację zwrotną na rynku, kiedy trafi on w ręce Twoich klientów!
Ponadto nigdy nie możemy być pewni, w jaki sposób program Proguard zaciemni i zmieni nazwy atrybutów XML i metody klas, więc nie jest w 100% bezpieczny, że pewnego dnia nigdy nie będzie miał błędu.
Jeśli więc nigdy nie chcesz mieć kłopotów i nigdy o tym nie myśl, lepiej skorzystać z setOnClickListener
bibliotek lub takich jak ButterKnife z adnotacją@OnClick(R.id.button)
onclick
ponieważ należy upewnić się, że każda klasa implementuje tę metodę. Zakłada się, że używasz układu więcej niż raz. Jeśli jednak miałbyś mieć interfejs Java, aby upewnić się, że metoda jest we wszystkich klasach, które ją zaimplementowały, nie musiałbyś się martwić.