Обновление свойств объекта, возвращаемых LiveData

У меня есть вопрос о наилучшей практике обновления свойств объекта, полученного из комнаты с помощью LiveData.

В настоящее время, когда мой наблюдатель запускается в моей деятельности, я беру возвращенный объект и передаю его обратно в модель представления, чтобы сохранить ссылку, а затем обновляю свойства с помощью сеттеров, определенных в модели представления, а затем обновляю объект в комнате.

Мой вопрос: считается ли это лучшей практикой или есть лучший способ добиться этого?

Я знаю о MutableLiveData, но для этого мне потребуется получить каждое из отдельных свойств объекта, обновить их, а затем перепродать каждое из них, тогда как я бы предпочел просто получить объект, обновить его и сохранить заново?

Спасибо


person d199224    schedule 06.04.2018    source источник


Ответы (1)


Пока объект, извлеченный из самих LiveData (давайте назовем его Объектом A), не используется в качестве будущего эталонного объекта, уверен, что это работает.

Итак, если вы сделаете следующее, это хорошее решение:

  1. Действие действия
  2. ViewModel вызывает загрузку объекта A
  3. Объект A помещается внутрь LiveData
  4. LiveData наблюдается в Activity
  5. Наблюдаемый объект A передается в функцию ViewModel
  6. Функция в ViewModel обновляет свойство в объекте A
  7. Обновленный объект A установлен в качестве ссылки на объект B в ViewModel
  8. Когда объект необходим, объект B упоминается в ViewModel.
person Bam    schedule 17.01.2019