android 无法从ViewModelProvider创建ViewModel

sc4hvdpw  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(173)

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

  1. class ChooseDataViewModel<T: DataSelectable>(application: Application) :
  2. AndroidViewModel(application) {
  3. val title = MutableLiveData<String>()
  4. private val mData = MutableLiveData<List<T>>() }
  5. class ClassA: DataSelectable{}
  6. class ClassB: DataSelectable{}

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

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

但编译器显示错误信息

  1. Type mismatch.
  2. Required:
  3. ChooseDataViewModel<T>?
  4. Found:
  5. ChooseDataViewModel<*>

如何解决这个问题?

ahy6op9u

ahy6op9u1#

请像下面这样更新ViewModel类。

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

希望对你有帮助!

相关问题