Ну вопрос будет использовать Databinding
или нет. Вот некоторые плюсы и минусы Databinding
:
Плюсы:
- Делает код супер чистым.
- Делает код короче.
- Легко проверить.
Минусы:
- Иногда это трудно отладить.
- Это немного тяжело и увеличивает время компиляции.
Но... поскольку Google
уже анонсировал его как часть компонентов архитектуры Android, я считаю, что вам следует его использовать.
Каков наилучший способ реализовать это?
Я не знаю, насколько вы знакомы с Databinding
, но вы должны знать кое-что о Адаптеры привязки, и в onClick
они вам не понадобятся. Просто добавьте атрибут android:onClick
в файл XML. Также вы можете найти этот Codelab, чтобы правильно реализовать его:
https://codelabs.developers.google.com/codelabs/android-databinding/#0
Пример:
Прежде всего убедитесь, что у вас включен Databinding
в вашем build.gradle
android {
...
dataBinding {
enabled true
}
}
После этого перейдите к макету, который вы будете использовать привязку данных (и для этого убедитесь, что это будет Activity/Fragment), и просто введите ALT + TAB в свой IDE и чем...
После этого определите типы, например ViewModel
и его имя. И в представлении, которое будет использовать функцию щелчка, добавьте то, что я сказал выше. (android:onClick="@{() -> viewmodel.onLike()}"
)
Вы не закончили. Вам каким-то образом нужно будет подключить свою логику к этой привязке данных, поэтому перейдите к своему коду Java/Kotlin для своего действия/фрагмента и:
Замените setContentView(R.layout.some_activity)
на val binding : SomeActivityBinding =
DataBindingUtil.setContentView(this, R.layout.some_activity)
Обратите внимание, что SomeActivityBinding
будет предоставлено самой IDE, поскольку оно обрабатывается в библиотеке Databinding
в соответствии с именами xml.
Это самое основное. Удачи.
person
coroutineDispatcher
schedule
10.06.2019