首页 > 解决方案 > 从 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 中的值?我需要做任何类型转换吗?

标签: androidkotlinandroid-architecture-componentsandroid-livedataandroid-viewmodel

解决方案


MutableLiveData 类中有一个方法:setValue。因此,你可以试试这个:

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

推荐阅读