【发布时间】:2020-05-12 18:07:11
【问题描述】:
我需要你的帮助...如果我有许多带有构造函数的 ViewModel(具有不同的参数 - 一些存储库) - 那么事实证明应该有尽可能多的自定义 ViewModelProvider.Factories?那么这会使代码的编写加倍。类似于例如:
//1st ViewModel
OneViewModel1(val repos: OneRepository) : ViewModel() {
}
//1st Factory
class OneFactory(private val repository: OneRepository):ViewModelProvider.Factory{
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return if (modelClass.isAssignableFrom(OneViewModel::class.java)) OneViewModel(repository) as T else {
throw IllegalArgumentException("ViewModel Not Found")
}
}
}
//2d OneViewModel
TwoViewModel(val repository: TwoRepository) : ViewModel() {
}
//1st Factory
class TwoFactory(private val repository: TwoRepository):ViewModelProvider.Factory{
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return if (modelClass.isAssignableFrom(TwoViewModel::class.java)) TwoViewModel(repository) as T else {
throw IllegalArgumentException("ViewModel Not Found")
}
}
}
等等……
如果我有 100 个 ViewModel,我需要创建 100 个工厂。还有其他方法吗??
【问题讨论】:
-
@user 需要一个工厂才能为特定模型传递某些参数,不是吗?
-
@user 我正在尝试找出答案......
标签: android kotlin viewmodel android-viewmodel viewmodelproviders