начал изучать android разработку и у меня возник вопрос, что лучше использовать - атрибут android:onClick, а метод прописывать в main, или реализовывать интерфейс onClickListener и использовать activity как объект ?
Asked
Active
Viewed 139 times
1
1 Answers
2
Используйте программную реализацию. В реальном мире почти никто не использует назначение слушателей в разметке обычным способом. Причин несколько:
- В активити обычно нет кнопок кроме меню и/или кнопок навигации (табы, например), а они обычно управляются своими слушателями нажатий.
- Обычно активити используется как контейнер для фрагментов. Весь интерфейс как раз в них и находится и в них (фрагментах) такой способ указания слушателя просто не работает, ибо и не должен.
- Также часто слушатели нажатий находятся на кнопках внутри элементов каких-то списков. Там это тоже работать не будет.
- Если нравится назначать слушатели из разметки то надо брать
AndroidDataBindingбиблиотеку и делать через неё. Но это уже скорее про архитектурный подход (MVVMvsMVP).
Итого:
Способ придуман на заре эры андроида когда не было фрагментов и устоявшихся подходов к проектированию и для быстрых прототипов это казалось полезным. Сейчас в этой возможности нет нужды и её не стоит использовать.
ЮрийСПб
- 69,813
-
По пункту 3 - со списком на активити работать будет и иногда это самое простое решение. Вообще нет никакой разницы, использовать программный способ или через атрибут - при сборке\компиляции второй вариант преобразуется в первый – pavlofff Oct 14 '18 at 03:45
main()и активити нельзя использовать, как клиентский объект (точнее, это будет "мертвое" активити) – pavlofff Oct 14 '18 at 03:50