No1:

添加依赖库

Project的build.gradle文件添加

buildscript{
...
dependencies{
...
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}

在Module:app的build.gradle文件添加

apply plugin:'com.neenbedankt.android-apt'
...
dependencies{
...
compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

No2:

绑定控件id

@BindView(R.id.tv_text)
TextView tv_text;

No3:

绑定资源

@BindString(R.string.app_name)
String appName;
@BindArray(R.array.swordsman)
String[] swordsman;
@BindDimen(R.dimen.activity_horizontal_margin)
float margin;

No4:

绑定监听

@OnClick(R.id.bt_button1)
public void showToast(){
} @OnLongClick(R.id.bt_button2)
public boolean setText(Button button){
return true;
}
@OnTextChanged(value=R.id.et_edittext,callback=OnTextChanged.Callback.BEFORE_TEXT_CHANGED)
void beforeTextChanged(CharSequence s,int start,int count,int after){
} @OnTextChanged(value=R.id.et_edittext,callback=OnTextChanged.Callback.TEXT_CHANGED)
void onTextChanged(CharSequence s,int start,int before,int count){
} @OnTextChanged(value=R.id.et_edittext,callback=OnTextChanged.Callback.AFTER_TEXT_CHANGED)
void afterTextChanged(Editable s){
}
@OnTouch(R.id.bt_button3)
public boolean onTouch(View view,MotionEvent event){
return true;
} @OnItemClick(R.id.lv_list)
void onItemClick(int position){
}

No5:

可选绑定

@Nullable
@BindView(R.id.tv_toptext)
TextView name;

No6:

ButterKnife注解处理器是ButterKnifeProcessor,主要处理逻辑都在process方法中

->findAndParseTargets

->brewJava

->createBinding

->findBindingConstructorForClass

->findRequiredViewAsType

->findRequiredView

->DecorView.findViewById

->castView

《Android进阶之光》--ButterKnife的更多相关文章

  1. Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架

    前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...

  2. Android Butterknife 8.4.0 使用方法总结

    转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6016341.html 本文出自[赵彦军的博客] 前言 ButterKnife 简介 ButterKnife是 ...

  3. Android开发学习之路-使用annotationProcessor配置Butterknife

    Apt工具的作者宣布了不再维护该工具了,而且Android Studio也有了自己的插件,并且可以通过gradle来简单的配置. 其实用Butterknife的都知道,没有apt,onClick绑定不 ...

  4. Android ButterKnife配置使用

    ButterKnife在GitHub的地址:https://github.com/JakeWharton/butterknife 最新的版本是:8.4.0 app 模块的build.gradle: a ...

  5. Android注解使用之ButterKnife 8.0注解使用介绍

    前言: App项目开发大部分时候还是以UI页面为主,这时我们需要调用大量的findViewById以及setOnClickListener等代码,控件的少的时候我们还能接受,控件多起来有时候就会有一种 ...

  6. ButterKnife Zelezny从配置到使用

    插件介绍:ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成.又一神器,完美告别 ...

  7. Android Studio插件之快速findViewById(butterknife和Android CodeGenerator的使用)

    首先在设置里面的Plugins里面下载安装插件: 安装之后会提示重启, 然后就是怎么使用了: butterknife的使用: 首先在build.gradle(app)里面添加这句话: compile ...

  8. 使用Android Butterknife

    我之前浏览过android butterknife 的使用 在android studio 中,很惊喜,已经成为一个插件来使用 这个android butterknife 最大的用处,就是直接生成la ...

  9. 手把手教android studio中安装Android Butterknife Zelezny (转)

    原文地址:http://blog.csdn.net/xin917480852/article/details/51176524 用来快速生成findViewById() 安装方法: 打开Android ...

  10. ButterKnife基本使用

    ButterKnife基本使用 Butter Knife处理字段和方法绑定.   重要更新: 目前(2016.4.29), ButterKnife的最新版本是8.0.1. Demo项目已更新: htt ...

随机推荐

  1. Wannafly挑战赛21 E 未来城市规划

    传送门 题目中给的信息很难直接维护,但是可以考虑一条边对答案的贡献 在以\(x\)为根的子树里,如果一条边\(i\)的权值为\(w_i\),这条边深度更深的端点为\(to_i\),那么这条边对这个子树 ...

  2. 青云VPC网络配置

    1 创建VPC网络 2 申请公网IP 3 回到VPC图形界面绑定公网ip 4 创建私有网络,并绑定私有网络 5 创建3台主机 6 新建防火墙,并绑定到VPC 7 配置VPC端口转发规则 8 添加防火墙 ...

  3. BSGS算法及其扩展

    bsgs算法: 我们在逆元里曾经讲到过如何用殴几里得求一个同余方程的整数解.而\(bsgs\)就是用来求一个指数同余方程的最小整数解的:也就是对于\(a^x\equiv b \mod p\) 我们可以 ...

  4. Pandas提取数据存入excel

    import pandas as pd import pymysql def connect_db(): MYSQL_HOSTS = '127.0.0.1' MYSQL_USER = 'root' M ...

  5. linux 链接理解

    1.软链接 只包含另外软链接的基本信息, 生成与源文件不同的节点号, 可以链接目录.不同网络的文件 2.硬链接只能链接文件,不会生成节点号,说白了就是指针,指向同个文件,所以链接的节点号与源节点号一致

  6. A - 地精部落 (DP)

    题目链接:https://cn.vjudge.net/contest/281960#problem/A 题目大意:中文题目. 具体思路:首先,如果有一段是山谷的话,那么这一段中也能用来表示山峰,只要将 ...

  7. geeksforgeeks-Array-Rotate and delete

    As usual Babul is again back with his problem and now with numbers. He thought of an array of number ...

  8. Jetson tk1 hash sum mismatch

    sudo apt-get update遭遇Hash Sum Mismatch 修改DNS服务器地址: sudo gedit /etc/resolv.conf 解决办法: 在装有goagent的情况下: ...

  9. Anaconda3配置环境变量

    Anaconda3配置环境变量 有时候在win10安装好Anaconda3后,使用conda命令时依然会出现: C:\Users\dell\PycharmProjects\pytorch>con ...

  10. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之存储模型

    1.前言 关于存储系统体系架构,可以概述如下: 存储系统体系结构的形式 VMSA 存储属性   2. 存储系统体系结构 2.1.    地址空间 指令地址空间溢出 指令地址计算((address_of ...