【问题标题】:Can't create ViewModel from ViewModelProvider无法从 ViewModelProvider 创建 ViewModel
【发布时间】:2022-01-20 07:21:06
【问题描述】:

最近,我尝试开发在不同模块中具有相同视图的应用程序,因此我尝试重用 ViewModel。 这是 viewModel 类

class ChooseDataViewModel<T: DataSelectable>(application: Application) :
    AndroidViewModel(application) {
    val title = MutableLiveData<String>()
    private val mData = MutableLiveData<List<T>>() }
class ClassA: DataSelectable{}
class ClassB: DataSelectable{}

在片段中,我尝试通过这种方法创建数据类型为 ClassB 的 viewModel:

viewModel = ViewModelProvider(navBackStackEntry).get(ChooseDataViewModel::class.java)

但是编译器显示错误信息

Type mismatch.
Required:
ChooseDataViewModel<T>?
Found:
ChooseDataViewModel<*>

我搜索了很多,但找不到解决此问题的解决方案。

你能帮我解决这个问题吗?提前致谢

【问题讨论】:

    标签: android kotlin mvvm viewmodel android-viewmodel


    【解决方案1】:

    请更新您的 ViewModel 类,如下所示。

    class ChooseDataViewModel(application: Application) :
        AndroidViewModel(application) {
        val title = MutableLiveData<String>()
        private val mData = MutableLiveData<List<DataSelectable>>() }
    

    希望对你有帮助!

    【讨论】:

    • 谢谢兄弟。我为问题添加了更多文字,您能帮我再次检查问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2021-05-17
    • 2021-07-14
    • 2021-11-28
    相关资源
    最近更新 更多