ButterKnife

提示:ButtonKnife有多个版本,不同版本的初始化方法都不一样,且@Bind注解控件的后缀名也不同.

ButterKnife官网:https://github.com/JakeWharton/butterknife


简介:ButterKnife是视图注入中相对简单易懂的很不错的开源框架

1. 强大的View绑定和Click事件处理功能,简化代码,提升开发效率

2. 方便的处理Adapter里的ViewHolder绑定问题

3. 提高APP运行效率,使用配置方便.

4. 代码清晰,可读性强


提示:在实际使用时,为了提高效率,也可以在Studio中使用插件:Android ButterKnife Aelezny

ButterKnife使用心得:                 

1.ButtKnife初始化ButterKnife.bind(this)必须在加载布局资源之后(在setContentView(),Inflate等方法下面),所以ButterKnife不能在Application中初始化。

2.ButtKnife在Fragment和Adapter中使用时,初始化代码有所不同,多了个参数VIew对象.ButterKnife.bind(this, mRootView);

3.使用ButterKnife设置控件点击事件,其方法权限必须在默认权限以上方可(包括默认权限)

4.虽然使用ButterKnife很方便,但由于ButterKnife不是安卓原生的,所以使用时如果出错了,Studio报错会很奇怪,需要耐心查找。              


ButtonKnife使用步骤:
1.在gradle文件中关联ButterKnife框架
    compile 'com.jakewharton:butterknife:7.0.1'

2.在onCreate里进行初始化(注意:在Fragment和ViewHolder里初始化时,方法: ButterKnife.bind(this, view);    参数2:View对象 )
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
//在布局文件后,进行ButterKnife的绑定,参数上下文
ButterKnife.bind(this);
}
提示:ButterKnife的初始化必须在安卓程序加载布局文件之后,否则运行会报错。在哪使用,就在哪初始化。

3.加注解(相当于findViewByID,而且其控件对象是成员变量,注意格式)
@Bind(R.id.tv_butterknife)
TextView mTvButterknife;

4.使用ButterKnife设置点击事件,使TextView具备点击事件
@OnClick(R.id.tv_activity_main_translation)
void translate(TextView textView) {
    textView.setText("变形成功");
}
提示: TextView并没有注解,但是却进行了文本新内容的设置,是因为点击事件中,方法参数就代表了TextView的注解,只不过这个注解后的TextView对象,只能在点击事件方法中有效.

5.使用ButterKnife给多个控件设置点击事件
//设置点击事件,权限必须是默认权限以上且不能是静态
@OnClick({R.id.cb_butterknife,R.id.tv_activity_main_goto_next_page})
void onClick(View view) {
switch (view.getId()) {
//为跳转到第二个页面的TextView设置了点击事件
case R.id.tv_activity_main_goto_next_page:
            Toast.makeText(MainActivity.this, "易大师好帅", Toast.LENGTH_SHORT).show();
break;
//使复选框具备点击事件
case R.id.cb_butterknife:
            Toast.makeText(MainActivity .this, "易大师带你装逼,带你飞", Toast.LENGTH_SHORT).show();
break;
    }
}

ButterKnife8.0版本比7.0版本多了一些配置,改变了一些方法名,但使用的思路是一致的,具体参考这个博客:http://www.cnblogs.com/libertycode/p/5863231.html


ButterKnife8.0:http://www.apkbus.com/blog-904057-67981.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值