Eri*_*oto 0 android kotlin android-viewmodel android-jetpack
class SettingsViewModelFactory(application: Application, owner: SavedStateRegistryOwner) : SavedStateViewModelFactory(application, owner){
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(SettingsViewModel::class.java)){
return SettingsViewModel() as T
}
throw IllegalArgumentException("Invalid ViewModel class")
}
}
Run Code Online (Sandbox Code Playgroud)
我在 SavedStateViewModelFactory 下方看到一条红色下划线,表示该类型是最终类型,不能继承。我该怎么办?文档太模糊了。另外我要在退货中放入什么状态?
如果您想创建自己的工厂来允许使用SavedStateHandle
构造函数参数,您可以扩展AbstractSavedStateViewModelFactory
,而不是SavedStateViewModelFactory
按照文档中的明确注释:
提供自定义
ViewModelProvider.Factory
实例时,您可以SavedStateHandle
通过扩展AbstractSavedStateViewModelFactory
.
但是,您不需要任何自定义工厂来支持具有零参数构造函数的 ViewModel - 默认情况下支持。仅当您需要将自定义参数传递给 ViewModel 时,才需要自定义工厂。对于您的代码,您可以完全删除自定义工厂。
归档时间: |
|
查看次数: |
939 次 |
最近记录: |