Я вражений тим, що ніхто не говорив про це, але будьте обережні, хоча android:onClick
XML, здається, є зручним способом обробки кліків, setOnClickListener
реалізація робить щось додаткове, ніж додавання onClickListener
. Дійсно, це перетворило властивість view clickable
на істину.
Незважаючи на те, що це не може бути проблемою для більшості реалізацій Android, згідно з конструктором телефону, кнопка завжди має значення за замовчуванням clickkable = true, але для інших конструкторів у певній моделі телефону за замовчуванням може бути встановлено clickable = false у некнопкових поданнях.
Отже, встановлення XML недостатньо, ви повинні весь час думати, щоб додати android:clickable="true"
кнопку, яка не є кнопкою, і якщо у вас є пристрій, де за замовчуванням можна натиснути = true, і ви забули навіть один раз поставити цей атрибут XML, ви не помітите проблема під час роботи, але отримає відгук на ринку, коли вона буде в руках ваших клієнтів!
Крім того, ми ніколи не можемо бути впевнені в тому, як proguard буде затушувати та перейменовувати атрибути XML та метод класу, а значить, не на 100% безпечно, щоб одного разу вони ніколи не мали помилки.
Тож якщо ви ніколи не хочете мати проблем і ніколи про це не думайте, краще скористатися setOnClickListener
такими бібліотеками, як ButterKnife з анотацією@OnClick(R.id.button)
onclick
оскільки вам потрібно переконатися, що кожен клас реалізує цей метод. Це припускає, що ви використовуєте макет більше одного разу. Однак, якщо ви хочете мати інтерфейс Java, щоб переконатися, що метод знаходиться у всіх класах, які його реалізували, вам не доведеться турбуватися.