【发布时间】:2019-11-01 13:22:45
【问题描述】:
早安;
我有这个自定义 ViewModel 工厂类:
class AlreadyHaveAnAccountFragmentViewModelFactory (private val userDataSourceRepository: UserDataSourceRepository) :
ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return AlreadyHaveAnAccountViewModel(userDataSourceRepository) as T
}
}
/**
* Initializing our ViewModel using a custom Factory design pattern
*/
alreadyHaveAnAccountViewModel = ViewModelProviders.of(
this,
AlreadyHaveAnAccountFragmentViewModelFactory(
RepositoryFactory.createApiRepository()
)
).get(AlreadyHaveAnAccountViewModel::class.java)
函数 create 返回 AlreadyHaveAnAccountViewModel(userDataSourceRepository) 其中 AlreadyHaveAnAccountViewModel 是我的 viewModel 类。 我需要创建一个自定义 viewModel 工厂类,我可以在其中传递 AlreadyHaveAnAccountViewModel 参数,或者最终避免讨厌的演员表的方法。
帮助
【问题讨论】:
-
我不太确定你想做什么,自定义 ViewModelFactory 参数你的 ViewModel (AlreadyHaveAnAccountViewModel)?为什么需要这个?
-
使用这个方法我需要在每次创建新的 ViewModel 时创建一个新的 ViewModelProvider,我想创建一个自定义的 viewModel,我可以在我的项目中将它与任何 viewModel 一起使用
-
我想避免最后的讨厌演员:
标签: kotlin mvvm viewmodel viewmodelproviders