使用hilt注入viewmodel

Dependency Injection is the first step you have to take towards building an app that can be tested. So today we will use Hilt to introduce view model injection into a Fragment. If you wish to carry along with this article you can checkout the starting code here

依赖注入是构建可测试应用程序的第一步。 因此,今天我们将使用Hilt将视图模型注入片段中。 如果您希望继续阅读本文,可以在此处签出起始代码

设置击剑 (Setting up Hilt)

First of all we need to add dependencies.

首先,我们需要添加依赖项。

Add the hilt-android-gradle-plugin plugin to your project's root build.gradle file:

hilt-android-gradle-plugin插件添加到项目的根build.gradle文件中:

buildscript {
       
...
dependencies {
...
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
}
}

Then, apply the Gradle plugin and add these dependencies in your app/build.gradle file:

然后,应用Gradle插件并将以下依赖项添加到您的app/build.gradle文件中:

...
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'
dependencies {
implementation "com.google.dagger:hilt-android:2.28-alpha"
kapt "androidx.hilt:hilt-compiler:1.0.0-alpha02"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02"
}

Hilt uses Java 8 features. To enable Java 8 in your project, add the following to the app/build.gradle file:

Hilt使用Java 8功能 。 要在项目中启用Java 8,请将以下内容添加到app/build.gradle文件中:

android {
       
...{ sourceCompatibility = 1.8
targetCompatibility = 1.8}kotlinOptions { jvmTarget = "1.8"}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用的是 Hilt 2.28及以上版本,则可以不需要在 AndroidManifest.xml 文件中的 Application 标签添加 AndroidEntryPoint 注解,而是在 HiltApplication 中添加 @HiltAndroidApp 注解即可。 至于如何在代码中使用 Hilt 进行依赖注入,您可以使用 @Inject 注解来标记需要注入的依赖,同时在需要使用该依赖的地方使用 @Inject 注解进行注入。此外,您还可以通过 @Module 和 @Provides 注解来自定义依赖的注入行为。 例如,以下是一个使用 Hilt 进行依赖注入的示例代码: ```java @AndroidEntryPoint public class MyActivity extends AppCompatActivity { @Inject MyDependency myDependency; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 使用注入的依赖 myDependency.doSomething(); } } @Module @InstallIn(ActivityComponent.class) public class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependencyImpl(); } } ``` 在上述代码中,我们使用 @AndroidEntryPoint 标注了 MyActivity,表示该 Activity 会使用 Hilt 进行依赖注入。通过 @Inject 注解标记了 MyDependency 字段,表示需要注入 MyDependency 类型的依赖。在 MyModule 中使用 @Provides 注解提供了 MyDependency 的实例。在 MyActivity 中,我们直接使用注入的 MyDependency 实例来调用其方法。 需要注意的是,上述代码是基于 Hilt 2.28及以上版本进行的示例。如果您使用的是旧版本的 Hilt,可能需要做出一些调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值