gpt4 book ai didi

android - 没有构造函数参数的 Hilt Inject 到 ViewModel

转载 作者:行者123 更新时间:2023-12-04 23:46:47 26 4
gpt4 key购买 nike

使用新的依赖注入(inject)库 Hilt , 如何将一些类注入(inject)ViewModel没有构造函数参数和 ViewModelFactory ?
可能吗?
喜欢 Fragment , 我们只使用 @AndroidEntryPoint@Inject .

最佳答案

how to inject some classes into ViewModel without constructor params and ViewModelFactory? Is it possible?


Hilt 通过 @HiltViewModel 支持 ViewModel 的构造函数注入(inject)。 (以前的 @ViewModelInject )注释。
这允许任何 @AndroidEntryPoint -注释类重新定义他们的 defaultViewModelProviderFactory成为 HiltViewModelFactory ,它允许创建 @HiltViewModel -通过 Dagger/Hilt 正确实例化的带注释的 ViewModel。
新 HILT 版本 :
@HiltViewModel
class RegistrationViewModel @Inject constructor(
private val someDependency: SomeDependency,
private val savedStateHandle: SavedStateHandle
) : ViewModel() {
...
}
旧刀柄版本 :
class RegistrationViewModel @ViewModelInject constructor(
private val someDependency: SomeDependency,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
...
}

接着
@AndroidEntryPoint
class ProfileFragment: Fragment(R.layout.profile_fragment) {
private val viewModel by viewModels<RegistrationViewModel>() // <-- uses defaultViewModelProviderFactory

关于android - 没有构造函数参数的 Hilt Inject 到 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62980426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com