Реализовать область с привязкой данных в android

Я пытаюсь использовать компонент архитектуры Android, то есть data binding с базой данных Realm, используя шаблон MVVM.

Изучив привязку данных и MVVM, я наткнулся на несколько подходов к привязке модели к пользовательскому интерфейсу.

  1. Объявите наблюдаемые примитивные поля в модели и напрямую привяжите их к XML-файлу Android.

  2. Сохраните модель как есть с примитивным типом данных и объявите наблюдаемые поля в классе модели View.

Теперь, поскольку область не поддерживает наблюдаемые поля, остается использовать Observable.

Я сослался на эту статью, чтобы использовать область с привязкой данных, но эта статья довольно старая.

так что мои вопросы

  1. Что предпочтительнее при реализации привязки данных в Android, привязать модель непосредственно к пользовательскому интерфейсу Android или объявить наблюдаемые переменные в модели представления и сопоставить их с моделью?

  2. лучшие практики использования области с привязкой данных

Мой вопрос довольно конкретен в контексте привязки области и данных, поэтому это не общий вопрос.

0
0
555
1

Ответы 1

Я отвечу только на первый вопрос, так как давно не использовал Realm.

Как вы сами заявили, вы не можете использовать наблюдаемые поля в модели, которую используете в Realm, и никогда не должны этого делать. Модель должна быть простой. ViewModel - это именно то место, где принадлежат Observables. Они должны быть привязаны к виду и только к ним.

Рассмотрите возможность использования новых классов LiveData вместо Observables и ViewModels из новых компонентов архитектуры. Они упрощают работу и теперь поддерживаются в привязке данных:

Обзор LiveData

LiveData с привязкой данных

Другие вопросы по теме