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