依赖注入框架之butterknife

主页: https://github.com/JakeWharton/butterknife


用途: 主要用来简化各种初始化控件的操作


配置:
1. 在app/build.gradle文件中dependencies节点添加如下代码
    compile 'com.jakewharton:butterknife:7.0.1'
2. 在Android Studio中点击 File-->Settings-->Plugins-->Browse repositories,搜索Android ButterKnife Zelezny插件,安装成功以后重启Android Studio.
3. 在布局文件中添加控件的时候,所有需要在Activity/Fragment代码中进行控制的控件都要添加id属性
4. 在Activity/Fragment 代码中,将鼠标放在布局文件的引用上(即R.layout.activity_main中的activity_main上面),此时按快捷键Alt + Insert或鼠标右键选择Generate
5. 在弹出的菜单中选择Generate ButterKnife Injections,此时会再次弹出一个对话框
6. 新的对话框中点击confirm后直接生成控件的引用,代替findViewById
7. 如果需要处理控件的点击事件,可以选择对应控件的OnClick复选框.
8. 如果是ListView的Item视图,还可以选择左下角的Create ViewHolder复选框,生成ViewHolder静态类.


使用步骤

第一步:添加依赖

在Android studio中在app的build.grade文件中加入下面二行代码:

compile 'com.jakewharton:butterknife:8.4.0'   
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

 studio会自动联网下载,

第二步:安装插件

打开File->Settings->plugins,在搜索栏内搜索ButterKnife,要是没有引入该软件,就install,将这个软件打钩选中使用,

第三步:使用

在onCreate方法中(一定要在setContentVIew之后)调用ButterKnife.bind(this)(注一般也会自动生成,如果没有生成一定要手动写入);然后就可以自动生成代码了

生成方式:选中布局文件的名字,右击选择Generate->Generate BUtterknife injecktions

android编程的时候,经常会遇到findViewById的问题,尤其是当你的布局中的view较多的时候,initView是一个很耗时的过程,针对这一问题,ButterKnife可以完美解决,大大提高编程的效率效果如下图:


下面我来介绍一下在项目中的配置过程:

方法一:在gradel里面直接搜

打开Android Studio的File->Project Structure

点击左边菜单栏的app选项,并且点击右边上方的Dependencies这个Tab选项,然后点击右上角"加号"选择"1 Library dependency",然后在弹出框中直接搜butterknife,就可以搜到,然后选择引入:

引入之后会在项目的build.grade文件下的dependencies下生成:

第一步:compile 'com.jakewharton:butterknife:8.4.0'(位置1)这样一行代码,

第二步:在dependencies 下面加入这样一行代码:apt 'com.jakewharton:butterknife-compiler:8.4.0' (位置2)

第三步:在该文件根目录最上面加入这样一行代码:apply plugin: 'com.neenbedankt.android-apt'(位置3),

第四步:并同时在整个Project的build.grade文件的buildscript的dependencies下面加入这样一行代码:classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'(位置4),然后点击编译器右上角的Sync Now同步修改:

项目的build.grade文件:

整个Project的的build.grade文件:

Sync Now:

然后最关键的一步:打开File->Settings->plugins,在搜索栏内搜索ButterKnife,要是没有引入该软件,就install,将这个软件打钩选中使用:(没有这一步不能自动生成代码)

然后是最后一步,在使用前在onCreate方法中(一定要在setContentVIew之后)调用ButterKnife.bind(this);然后就可以自动生成代码了,生成方式:选中布局文件的名字,右击选择Generate->Generate BUtterknife injecktions,会弹出来下面这个对话框:

然后在Variable Na....一栏修改默认的一些对象的一些名字,点击OK,就生成了相应的代码了.

最后看一下最终效果:


技巧
* 在AndroidStudiopluginsandroidlib emplatesgradle-projectsNewAndroidModule ecipe.xml.ftl中添加如下代码,以后新创建的工程默认会添加Butterknife依赖:

  <dependency mavenUrl="com.jakewharton:butterknife:7.0.1" />

 

原文地址:https://www.cnblogs.com/loaderman/p/6472337.html