Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从ViewModel中的存储库获取变量值时类型不匹配_Android_Kotlin_Android Architecture Components_Android Livedata_Android Viewmodel - Fatal编程技术网

Android 从ViewModel中的存储库获取变量值时类型不匹配

Android 从ViewModel中的存储库获取变量值时类型不匹配,android,kotlin,android-architecture-components,android-livedata,android-viewmodel,Android,Kotlin,Android Architecture Components,Android Livedata,Android Viewmodel,我正在使用Android上架构组件的LiveData和ViewModel 这是我的存储库类- class DataRepository { var imagePath : String = "" } 这是我的ViewModel,我想在存储库中的值更新后从存储库中获取imagePath的值- class DataViewModel : ViewModel() { internal lateinit var imagePath : MutableLiveData<Stri

我正在使用Android上架构组件的LiveData和ViewModel

这是我的存储库类-

class DataRepository {

    var imagePath : String = ""
}
这是我的ViewModel,我想在存储库中的值更新后从存储库中获取imagePath的值-

class DataViewModel : ViewModel() {

    internal lateinit var imagePath : MutableLiveData<String>
    imagePath.value = DataRepository().imagePath

}
classdataviewmodel:ViewModel(){
内部lateinit var imagePath:MutableLiveData
imagePath.value=DataRepository().imagePath
}
问题是数据存储库中的imagePath类型为String,而DataViewModel中的imagePath类型为MutableLiveData


如何将存储库中的imagePath值分配给ViewModel中的值?我需要进行任何类型转换吗?

在MutableLiveData类中有一个方法:setValue。因此,您可以尝试以下方法:

internal lateinit var imagePath : MutableLiveData<String>
imagePath.setValue(DataRepository().imagePath)
内部lateinit var imagePath:MutableLiveData
设置值(DataRepository().imagePath)

谢谢。使用LiveData和ViewModel时是否总是需要使用Room?因为我还没有看到没有Room的LiveData和ViewModel教程,如果您不将数据存储到数据库(sqlite),就不需要使用Room