Доступ к переменным внутри модели, передаваемой в оперативные данные - PullRequest
0 голосов
/ 17 марта 2020

в репозитории User, я получаю данные из базы данных и преобразую в класс модели User.

Как получить доступ к двум переменным пользователя и электронной почте класса модели внутри оперативных данных?

ViewModel

class MyViewModel (private val repository: UsrRepository) : ViewModel() {

private var cUser : LiveData<User> = repository.getCacheUser()

val user: LiveData<String> = cUser.user
val email: LiveData<String> = cUser.email

}

Xml

<TextView
            android:text="@{viewmodel.user}"

<TextView
            android:text="@{viewmodel.email}"

1 Ответ

0 голосов
/ 17 марта 2020

Поскольку вы не выполняете никаких преобразований для данных, предоставленных cUser, вы можете просто сделать их опубликованными c в вашей ViewModel:

val cUser: LiveData<User> = repository.getCacheUser()

Затем получить доступ к свойствам пользователя непосредственно из LiveData в макете:

android:text="@{viewmodel.cUser.user}"
android:text="@{viewmodel.cUser.email}"

Если вы не хотите использовать необработанные значения, а вместо этого некоторые другие вычисленные значения, вы бы вместо этого выставили преобразование из cUser, создавая новые LiveData, значения которых изменены по сравнению с оригиналом.

...