Я очень плохо знаком с привязкой данных и только начинаю смотреть на библиотеку привязки данных Android, и одна вещь в документации вызывает у меня проблемы.
Использование компонентов ViewModel с библиотекой привязки данных позволяет перемещать логику пользовательского интерфейса из макетов в компоненты, которые легче тестировать.
Сразу после этого, вот что - в XML макета:
<CheckBox
android:id="@+id/rememberMeCheckBox"
android:checked="@{viewmodel.rememberMe}"
android:onCheckedChanged="@{() -> viewmodel.rememberMeChanged()}" />
Может быть, это только я, но разве это свойство onCheckedChanged
не содержит гораздо больше "логики" в макете , чемстаромодный способ вызова setOnCheckedChangeListener()
на «тупом» макете из действия или фрагмента?Все это кажется немного противоречивым.Может кто-нибудь объяснить мне, как привязка данных перемещает "Логика пользовательского интерфейса из макетов" ?