1. 程式人生 > >android butterknife使用詳解

android butterknife使用詳解

新增依賴

compile 'com.jakewharton:butterknife:8.6.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.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]);