无法从 ViewModelProvider 创建 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<*>

我该如何解决这个问题?

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

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

我希望它对你有帮助!

最新更新