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 次 |
| 最近记录: |