Android MVVM框架搭建(十)Hilt、ViewBinding、Activity Result API

第一步:首先在工程的build.gradle中添加,如下代码:

classpath ‘com.google.dagger:hilt-android-gradle-plugin:2.28-alpha’

添加位置如下图所示:

在这里插入图片描述

第二步:在app下的build.gradle中添加插件,代码如下:

apply plugin: ‘dagger.hilt.android.plugin’

添加位置如下图所示:

在这里插入图片描述

第三步:在app下的build.gradle中的denpendencies{}闭包中添加如下代码:

implementation “com.google.dagger:hilt-android:2.28-alpha”

annotationProcessor “com.google.dagger:hilt-android-compiler:2.28-alpha”

添加位置如下图所示:

在这里插入图片描述

这里还有一点需要注意,同时使用 Hilt 和数据绑定的项目需要 Android Studio 4.0 或更高版本,这一点是Google官网要求的。因此还没有升级的可以升级AS了,否则你在低版本的AS中使用指不定出现什么幺蛾子。还有一点就是你需要支持Java8及以上,这一点就不多说明了,因为现在最低都是Java8了。

完成这些操作之后点击右上角的Sync Now进行项目的同步依赖。

二、Hilt使用


1. Hilt 应用类

在使用Hilt的时候会有一些常用的注解,有一些是必不可少的,所有使用 Hilt 的应用都必须包含一个带有 @HiltAndroidApp 注释的 Application 类。我们的项目中我写过一个BaseApplication类,那么添加这个注解即可。如下图所示:

在这里插入图片描述

添加完成之后,我们再重新运行一下,先看看项目有没有啥问题,使用新的组件时要小心一些,尤其是这种注解的组件,不小心的话找bug找到你崩溃,但是好用也是真的好用。

在这里插入图片描述

果然是有问题,我以为是我的配置问题,然后我重新创建一个项目这样操作了一下发现没有问题,那么就应该是我项目中的其他配置导致Hilt出问题,通过排查最终定位到Room上,修改app的build.gradle中的代码,如下图所示,上面注释的一行是之前的,有标注的是修改的地方。

在这里插入图片描述

再运行一下,就不报错了。

在这里插入图片描述

不报错之后我们再进行别的注解使用。

Hilt为一些常用类提供了注入方法,Hilt 目前支持以下 Android 类:

Application(通过使用 @HiltAndroidApp)

Activity

Fragment

View

Service

BroadcastReceiver

如果您使用 @AndroidEntryPoint 为某个 Android 类添加注释,则还必须为依赖于该类的 Android 类添加注释。例如,如果您为某个 Fragment 添加注释,则还必须为使用该 Fragment 的所有 Activity 添加注释。

如果是自定义的类要使用注入则使用dagger2的就可以了。

2. ViewModel使用

因为我们使用了MVVM,那么对于ViewModel的处理Hilt也是支持的,要怎么去做呢,首先需要在app/build.gradle中添加依赖,代码如下:

// Hilt 对于ViewModel的支持

implementation ‘androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02’

annotationProcessor ‘androidx.hilt:hilt-compiler:1.0.0-alpha02’

添加位置如下图所示:

在这里插入图片描述

下面就先来改一个ViewModel试水,就拿MainViewModel来弄,首先修改MainRepository中的代码,它是给MainViewModel提供数据的。

在这里插入图片描述

我去掉了之前的单例,这里直接使用@Inject注入注解给一个类构造方法。然后去到MainViewModel中,也很简单。

在这里插入图片描述

最终我们的MainViewModel还是要在MainActivity中使用的,那么作为Activity来说需要使用一个@AndroidEntryPoint注解。

在这里插入图片描述

就这么简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值