android - 从 ViewModel 中的 Repository 获取变量值时类型不匹配
问题描述
我正在使用来自 Android 架构组件的 LiveData 和 ViewModel。
这是我的存储库类 -
class DataRepository {
var imagePath : String = ""
}
这是我的 ViewModel,我想在更新存储库中的值后从存储库中获取imagePath的值 -
class DataViewModel : ViewModel() {
internal lateinit var imagePath : MutableLiveData<String>
imagePath.value = DataRepository().imagePath
}
问题是DataRepository 中的 imagePath 是 String 类型,而DataViewModel 中的 imagePath 是MutableLiveData类型。
如何将存储库中的 imagePath 值分配给 ViewModel 中的值?我需要做任何类型转换吗?
解决方案
MutableLiveData 类中有一个方法:setValue。因此,你可以试试这个:
internal lateinit var imagePath : MutableLiveData<String>
imagePath.setValue(DataRepository().imagePath)
推荐阅读
- javascript - 如何停止从 JavaScript 中的事件处理程序传播?
- python - pandasql OperationalError:靠近“(”:语法错误
- r - R中甲基试剂盒(差异甲基化分析)中的错误
- python - 用图表破折号 DatePickerRange
- java - 如何将 BindingResults 验证返回到表单?
- mysql - 了解 MySQL MyISAM ROW_FORMAT=DYNAMIC
- ios - Xcode Preview canvas 不同于 Simulator
- teamcity - 在 Teamcity 构建服务器上生成 Locust 报告
- javascript - React Native Flip Card 不支持翻转
- php - 如何在 php 代码中的 textarea 元素中添加新行?