android butterknife使用詳解
阿新 • • 發佈:2019-01-01
新增依賴
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]);