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