Привязка к еще не инициализированному элементу livingata - PullRequest
0 голосов
/ 04 ноября 2019

возможно, заголовок не совсем подходит под вопрос, поэтому я объясню его.

В моем приложении я отправляю запрос на сервер для получения общей пользовательской информации. Если я получаю, я хочу сохранить его в локальной комнате базы данных. Теперь мы подошли к проблеме. Я хочу привязать этого одного пользователя к представлению прямо из БД. Но я не могу связать элемент, который, возможно, не существует, потому что запрос в процессе.

(Мое плохое решение): создание другого элемента liveate, который содержит логическое значение. Я создаю наблюдателя в Деятельности и добавляю наблюдателя после того, как логическое значение обнаруживает «истину». С этим решением я не могу использовать «Связывание данных» в макете XML.

У кого-нибудь есть идея? (Если вам нужна дополнительная информация, просто спросите - я знаю, что это действительно абстрактный вопрос без кода)

1 Ответ

0 голосов
/ 11 ноября 2019

Как отметил Санлок Ли:

Если вы переназначите user, тогда он станет совершенно другим экземпляром, и наблюдатель не будет слушать новый LiveData. Вместо этого вы можете сделать val user: MediatorLiveData<User> и позже вы можете позвонить user.addSource(dao.getUserById(1), ...)

...