viewModel = ViewModelProvider(
this,
ViewModelProvider.AndroidViewModelFactory.getInstance(application)
).get(PDFBookDocumentViewModel::class.java)
使用上述方法加载viewModel报上述错误。如果您想为ViewModel类提供一个非零参数的构造函数,则可能必须创建一个自定义ViewModelFactory
类来初始化ViewModel实例,该实例将实现ViewModelProvider.Factory
接口
解决方案:https://stackoverflow.com/questions/44194579/android-viewmodel-has-no-zero-argument-constructor
1. 创建一个自定义ViewModelFactory
类:
class ViewModelFactory constructor(
private val sharePref: SharedPreferences,
private val topRepository: ITopRepository,
) : ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel> create(modelClass: Class<T>) =
wi