Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

Android Studio中ButterKnife安装使用

ButterKnife 简介

Github:https://github.com/JakeWharton/butterknife

ButterKnife 优势:

  • 1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率
  • 2.方便的处理Adapter里的ViewHolder绑定问题
  • 3.运行时不会影响APP效率,使用配置方便
  • 4.代码清晰,可读性强

使用心得:

  • 1.Activity ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind
  • 2.Fragment ButterKnife.bind(this, mRootView);
  • 3.属性布局不能用private or static 修饰,否则会报错
  • 4.setContentView()不能通过注解实现。(其他的有些注解框架可以)

修改配置文件 build.gradle

Android Studio 版本 2.1及以下

在project层级的build.gradle

buildscript {
    repositories {
        jcenter()
        //支持java 依赖库管理(maven/ivy),用于项目的依赖
        mavenCentral()
    }
    //依赖包的定义。支持maven/ivy、远程、本地库
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

在app层级的build.gradle

apply plugin: 'com.neenbedankt.android-apt'

android {
    //...
}

dependencies{
    //...
    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

Android Studio 版本 2.2+

在project层级的build.gradle

buildscript {
    repositories {
        jcenter()
        //支持java 依赖库管理(maven/ivy),用于项目的依赖
        mavenCentral()
    }
    //依赖包的定义。支持maven/ivy、远程、本地库
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

在app层级的build.gradle

apply plugin: 'com.jakewharton.butterknife'

android {
    //...
}

dependencies{
    //...
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}

注意:如果不配置apt或者annotationProcessor,@BindView 可能报空指针异常,@OnClick也不起作用

安装插件Android ButterKnife Zelezny

同步配置文件,然后在上述配置的基础上安装插件Android ButterKnife Zelezny,安装完成重启Android Studio。

至此,ButterKnife插件就已安装成功。在activity或者fragment的R.layout.*处就可以使用右键Generate ButterKnife Injections

如何使用 ButterKnife

  • 1、有所使用的布局 ID 上点击右键 (例如 R.layout.activity_mian ), 然后选择 Generate -> Generate ButterKnife Injections

在R.layout处右键Generate

![Generate ButterKnife Injections](http://www.yezhou.me/AppBlog/images/Android/Generate ButterKnife Injections.png)

  • 2、在对话框中选择需要注入的 View,还有个选项可以给 Adapter 创建一个 ViewHolder。

配置注入控件

  • 3、点击 Confirm, 代码自动生成!
上一篇 注解 @AutoConfigureBefore 和 @AutoConfigureAfter 的用途
下一篇 Android Studio中添加GSON并使用GsonFormat快速实现实体类