天天看点

android butterknife使用详解

添加依赖

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

//下载最新黄油刀

    implementation 'com.jakewharton:butterknife:10.2.0'

    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'

使用

初始化

ButterKnife.bind(this);
           

绑定view

@BindView(R.id.testte)
TextView tvColor;
           

绑定监听

@OnClick({R.id.activity_goods_address_left_layout, R.id.activity_goods_address_right_layout})
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.activity_goods_address_left_layout:
            finish();
            break;
        case R.id.activity_goods_address_right_layout://添加
            Intent chooseStyle = new Intent(OrderAddressActivity.this, EditGoodsAddressActivity.class);
            startActivityForResult(chooseStyle, 401);
            break;
    }
}
           

@OnLongClick( R2.id.button1 ) //给 button1 设置一个长按事件 public boolean showToast2(){ Toast.makeText(this, "is a long click", Toast.LENGTH_SHORT).show(); return true ; }

@OnCheckedChanged({R.id.rg_home,R.id.rg_wealth,R.id.rg_account}) public void OnCheckedChangeListener(CompoundButton view, boolean ischanged ){ switch (view.getId()) { case R.id.rg_home: if (ischanged){//注意:这里一定要有这个判断,只有对应该id的按钮被点击了,ischanged状态发生改变,才会执行下面的内容 //这里写你的按钮变化状态的UI及相关逻辑 } break; case R.id.rg_wealth: if (ischanged) { //这里写你的按钮变化状态的UI及相关逻辑 } break; case R.id.rg_account: if (ischanged) { //这里写你的按钮变化状态的UI及相关逻辑 } break; default: break; } }

  • 绑定Bitmap 资源:@BindBitmap( )
@BindView(R.id.mytestview)
ImageView mytestview;

@BindBitmap( R.mipmap.ic_launcher)//绑定Bitmap 资源
public Bitmap bitmap ;
           
mytestview.setImageBitmap(bitmap);
           
  • 绑定string 字符串:@BindString()
@BindView(R.id.mytestte)
TextView mytestte;

@BindString(R.string.app_name)  //绑定资源文件中string字符串
        String str;
           
mytestte.setText(str);
           
  • 绑定一个颜色值:@BindColor( )
@BindView(R.id.mytestte)
TextView mytestte;

@BindColor( R.color.colorAccent ) //具体色值在color文件中
        int black ;  //绑定一个颜色值
           
mytestte.setTextColor(black);
           
  • 绑定string里面array数组:@BindArray()
<string-array name="city">
    <item>北京市</item>
    <item>天津市</item>
    <item>哈尔滨市</item>
    <item>大连市</item>
    <item>香港市</item>
</string-array>
           
@BindView(R.id.mytestte)
TextView mytestte;

@BindArray(R.array.city)  //绑定string里面array数组
        String [] citys ;
           
mytestte.setText(citys[2]);