访问传递给实时数据的模型中的变量

Accessing variables inside a model passed to live data

在用户存储库中,我从数据库中获取数据并将其转换为模型 class 用户。

如何在实时数据中访问模型 class 的两个变量用户和电子邮件?

视图模型

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}"

由于您没有对 cUser 提供的数据进行任何转换,您可以在您的 ViewModel 中将其 public:

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

然后直接在布局中从 LiveData 访问用户属性:

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

如果您不想使用原始值,而是使用其他一些计算值,您可以改为公开 cUsertransformation,创建一个新的 LiveData,其值从原创.