Имея солидный опыт работы в области, отличной от Java и Android, я изучаю Android.
У меня много путаницы с разными областями, одна из них - как обрабатывать нажатия кнопок. Есть как минимум 4 способа сделать это (!!!), они кратко перечислены здесь
для единообразия перечислю их:
Имейте член
View.OnClickListener
класса в действии и назначьте его экземпляру, который будет обрабатыватьonClick
логику вonCreate
методе действия.Создайте onClickListener в методе действия onCreate и назначьте его кнопке с помощью setOnClickListener
Реализуйте onClickListener в самом действии и назначьте this в качестве слушателя для кнопки. В случае, если активность имеет несколько кнопок, необходимо проанализировать идентификатор кнопки, чтобы выполнить обработчик onClick для соответствующей кнопки.
Имейте общедоступный метод для действия, реализующего логику onClick, и назначьте его кнопке в объявлении xml действия.
Вопрос 1:
Это все методы, есть ли другой вариант? (Мне не нужны другие, просто любопытно)
Для меня наиболее интуитивно понятным способом был бы последний: он требует наименьшего количества кода для ввода и является наиболее читаемым (по крайней мере, для меня).
Хотя я не вижу широкого применения этого подхода. Какие минусы его использования?
Вопрос 2:
Каковы плюсы и минусы каждого из этих методов? Поделитесь, пожалуйста, своим опытом или хорошей ссылкой.
Любые отзывы приветствуются!
PS Я попытался найти в Google что-то по этой теме, но нашел только описание «как» это сделать, а не почему это хорошо или плохо.