DIR*_*AVE 7 android kotlin dagger-hilt
我正在按照 Kotlin 教程学习 Dagger Hilt 进行依赖注入。教程使用
class MainActivity: AppCompatActivity() {
private val viewModel: TestViewModel by viewModels()
}
Run Code Online (Sandbox Code Playgroud)
在 MainActivity 中注入视图模型。
它需要依赖:implementation "androidx.activity.activity-ktx:1.1.0"
才能这样做。
我正在尝试学习 Java 中的 hilt,所以我不确定将视图模型注入到我的活动中的 Java 等效项是什么。
这是不正确的并且不起作用
@Inject
private TestViewModel testViewModel;
Run Code Online (Sandbox Code Playgroud)
并使用
testViewModel = new ViewModelProvider(this).get(TestViewModel.class);
看起来不像依赖注入。
Java中的相当于什么by viewModels()
?
testViewModel = new ViewModelProvider(this).get(TestViewModel.class)
确实正是by viewModels()
适合您的。
您会注意到, 和by viewModels()
都new ViewModelProvder(this)
没有传入自定义ViewModelProvider.Factory
实例 - 这是因为它们使用默认工厂 - Hilt 设置的一个通过 DI 正确创建 ViewModel 的工厂。
归档时间: |
|
查看次数: |
1314 次 |
最近记录: |