访问传递给实时数据的模型中的变量
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}"
如果您不想使用原始值,而是使用其他一些计算值,您可以改为公开 cUser
的 transformation,创建一个新的 LiveData,其值从原创.
在用户存储库中,我从数据库中获取数据并将其转换为模型 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}"
如果您不想使用原始值,而是使用其他一些计算值,您可以改为公开 cUser
的 transformation,创建一个新的 LiveData,其值从原创.