butterknife android jar,andorid jar/库源码解析之Butterknife

butterknife:

作用:

用于初始化界面控件,控件方法,通过注释进行绑定控件和控件方法

栗子:

public class mainactivity extends appcompatactivity {

@bindview(r.id.btntest1)

button btntest1;

@bindview(r.id.btntest2)

button btntest2;

@bindview(r.id.lblmsg)

textview lblmsg;

@bindview(r.id.txtmsg)

edittext txtmsg;

@override

protected void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main);

butterknife.bind(this);

}

@onclick(r.id.btntest1) void test1(){

toast.maketext(this, txtmsg.gettext().tostring(), toast.length_long).show();

}

@onclick(r.id.btntest2) void test2(){

string msg = "test2222222222";

lblmsg.settext(msg);

toast.maketext(this, msg, toast.length_long).show();

}

}

源码解读:

butterknife.bind(this);

绑定界面元素和方法的关联。

1、传入当前对象,得到当前对象的类名a,查找a+‘_viewbinding’组成的类名的,类的构造函数,参数是a类对象和view

2、得到类,调用他的构造函数,函数中通过findviewbyid,来进行绑定(由于a+_viewbinding是生成的类,该类已知了所有需要绑定的控件,所以顺序处理了。)

3、对于事件方法,则创建了已定义的兼容性的子类,进行调用处理。

4、到这里。所有操作就关联上了。

自动生成了,_viewbinding类,用于关联

69458daa9f1c8fde980188b4a00b81e5.png

引入:

// androidx

implementation 'com.jakewharton:butterknife:10.0.0'

annotationprocessor 'com.jakewharton:butterknife-compiler:10.0.0'

// android.support.v4.content

// implementation 'com.jakewharton:butterknife:8.8.1'

// annotationprocessor 'com.jakewharton:butterknife-compiler:8.8.1'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值