写在前面:大家好!我是
ACfun
,我的昵称来自两个单词Accepted
和fun
。这篇博客记录一下如何在Android Studio开发环境中安装及使用ButterKnife注解框架。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。
文章目录
ButterKnife简介
butter knife是出自 JakeWharton 的一个开源库,它是一个专注于 Android 系统的 View 依赖注入框架。
它通过注解的方式来替代 android 中 view 的相关操作。减少大量的 findViewById 以及 setOnClickListener 代码,且对性能的影响较小。
在安卓项目中使用 ButterKnife 会极大地加快我们开发的速度。
ButterKnife GitHub项目地址:https://github.com/JakeWharton/butterknife
ButterKnife的优势
- 强大的 View 绑定和 Click 事件处理功能,简化代码,提升开发效率。
- 方便的处理 Adapter 里的 ViewHolder 绑定问题。
- 提高APP运行效率,使用配置方便。
安装ButterKnife插件
在 Android Studio 中使用 ButterKnife 需要首先安装该插件。注意:SDK版本为23及以下的无法安装使用1.6.0版本,只能使用1.5.0版本。
如何查看SDK版本
有很多方法可以查看SDK版本,我写一下我使用的方法:
首先找到SDK的安装位置,然后双击打开SDK Manager.exe,点击Tools,再点击About即可看到SDK的版本号。
1.5.0版本下载安装方法
点击 【File】—>【Setting】—> 【plugins】,然后输入 butterknife 安装插件。如果SDK版本为23及以下需要从网上下载压缩包然后再安装。
这里默认安装的是1.6.0版本的,但是我的SDK版本是23的,所以需要从官网下载1.5.0的安装包,进行离线安装。点击下图中的pluging homepage即可进入官网。然后找到1.5.0版本下载,放到一个固定的位置,建议放在Android Studio的文件夹中。我放在了plugins文件夹中。
下载完成之后在Android studio的 pluging 界面点击那个小齿轮,然后点击Install plugins from Disk……,找到刚才下载的文件安装完之后重启即可。
配置使用ButterKnife
安装好插件之后,在Module中的build.gradle中的 dependencies 中添加以下代码:
implementation 'com.jakewharton:butterknife:7.0.1'
annotationProcessor 'com.jakewharton:butterknife:7.0.1'
然后点击Sync Now
等待更新完成就可以使用ButterKnife依赖注入框架了。
ButterKnife的基本使用方法
初始化控件
配置完之后我们就可以使用这个框架了。当我们画好界面之后需要在对应的 Activity 中初始化我们在 layout 写的控件。具体方法为:右键 layout -> 点击Generate->Generate ButterKnife Injections。做完这些我们就可以直接完成初始化控件,而不需要一个一个的findViewByid()……了。
控件使用方法
初始化完成之后我们就可以使用控件了,不过使用方法和我们使用findViewByid()方法不同。基本的使用方法如下:
TextView 的使用
- 初始化(一般是自动生成的)
@butterknife.Bind(R.id.tv_time)
TextView tv_time;
2.使用举例
tv_time.setText();
Button 的使用
1.初始化(一般是自动生成的)
@butterknife.Bind(R.id.btn_skip)
Button btn_Skip;
2.监听事件(也是可以自动生成的,在初始化的时候再OnClick那一栏打钩即可)
@butterknife.OnClick(R.id.btn_skip)
public void onClick() {
// 加入具体的操作
// ……
}
}
ButterKnife比较常用的功能
上面只是简单的举了两个ButterKnife使用的例子。ButterKnife还有很多作用,这里就简单的列举一下比较常用的功能,这里就不一一展开叙述了更多使用方法请参考ButterKnife 官方使用文档。
- 省略findViewById()
- 省略setOnClickLintener()
- ListView的点击@OnClick,CheckBox的@OnClickedChanged也可以实现省略操作。
- 可以一次指定多个id,为多个View绑定一个时间处理方法。
- 等等
我是 ACfun !感谢大家的支持。