ButterKnife的使用

#####每次重复写findViewById()让人觉得比较麻烦,使用ButterKnife可以简化这个过程,Butter主要是用了注解来简化代码,用法也比较简单

使用之前要先导入库:

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

绑定View的方式

@BindView(R.id.xx) View view;

设置点击事件的方式

@Onclick(R.id.xx) void xx(){
    dosomthing();
}

使用的时候只需要在OnCreate()方法中写入

ButterKnife.bind(this);

绑定资源:
如绑定String

@BindString(R.Sring.xx) String xx;
  • 在非Activity中使用:
    如在Fragment中,在onCreateView()中调用:
ButterKnife.bind(Context,view);
  • 在Adapter中使用:
    在ViewHolder中建立一个构造方法:
ViewHolder(View v){
    ButterKnife(Context,v);
}
  • 绑定任意的对象:
ButterKnife.bind(this,activity);

View列表

@BindViews ({R.id.xx1,R.id.xx2,R.id.xx3}) List<EditText> edittexts;

使用的是ButterKnife.apply(names,DISABLE);
apply()方法允许对所有视图立刻进行处理

Action和Setter接口允许指定简单的行为

static final ButterKnife.Action<View> DISABLE = new ButterKnife.Action<View>() {
  @Override public void apply(View view, int index) {
    view.setEnabled(false);
  }
};
static final ButterKnife.Setter<View, Boolean> ENABLED = new ButterKnife.Setter<View, Boolean>() {
  @Override public void set(View view, Boolean value, int index) {
    view.setEnabled(value);
  }
};

也可以用

ButterKnife.apply(nameViews,View.ALPHA,0.0f);

来更改视图的透明度

指定多个ID的,处理单个的指令的方法

 @OnClick({R.id.a,R.id.b})
    public void Onclick(Button button){
        switch (button.getId()){
            case R.id.a:
                Toast.makeText(MainActivity.this,"aaa",Toast.LENGTH_SHORT).show();
                break;
            default:
                Toast.makeText(MainActivity.this,"bbb",Toast.LENGTH_SHORT).show();
                break;
        }
    }

跟直接用Onclick一样就行了

就写这么多吧,这个源码具体怎么实现的现在还不知道,等有时间研究一下吧
最后贴上官方介绍页面:http://jakewharton.github.io/butterknife/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值