bufferknife总结(二)

butterknife的主要功能就是绑定。
本文我们先总结bufferknife的7个简单常用功能。

那么,我们开门见山,直接看用例。
(1)绑定view

@BindView(R.id.title) TextView title;
@BindView(R.id.subtitle) TextView subtitle;
@BindView(R.id.footer) TextView footer;

忘记findViewbyID()吧~

注:view对象不能为static或private.

(2)绑定resource

@BindString(R.string.title) String title;
@BindDrawable(R.drawable.graphic) Drawable graphic;
@BindColor(R.color.red) int red; // int or ColorStateList field

(3)绑定view集合

@BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List nameViews;

(4)绑定onClick方法(花~式~)

方法名可以不再是onClick

@OnClick(R.id.submit)
public void submit(View view) {
  // TODO submit data to server...
}

方法可以没有参数

@OnClick(R.id.submit)
public void submit() {
  // TODO submit data to server...
}

可以组团绑定同一方法

@OnClick({ R.id.door1, R.id.door2, R.id.door3 })
public void pickDoor(DoorView door) {
  if (door.hasPrizeBehind()) {
    Toast.makeText(this, "You win!", LENGTH_SHORT).show();
  } else {
    Toast.makeText(this, "Try again", LENGTH_SHORT).show();
  }
}

(5)实现自定义view自我监听绑定

public class FancyButton extends Button {  
    @OnClick  
    public void onClick() {  
        // TODO do something!  
    }  
} 

(6)对于多方法的Listener

@OnTextChanged(value = R.id.et_Msg, callback = OnTextChanged.Callback.BEFORE_TEXT_CHANGED)  
void beforeTextChanged(String sContent) {  
    //TODO
}  
@OnTextChanged(value = R.id.et_Msg, callback = OnTextChanged.Callback.TEXT_CHANGED)  
void onTextChanged(String sContent) {  
    //TODO
}  
@OnTextChanged(value = R.id.et_Msg, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)  
void afterTextChanged(String sContent) {  
    //TODO
}  

(7)还有什么?
butterknife可不仅仅是绑定onClick或onTextChanged这么简单,它还能…

bufferknife总结(二)_第1张图片

以上是bufferknife常用的7个功能。
还有一些功能相对(Xue Wei)复杂,包括
(1)对一组View进行统一操作
(2)可选绑定
(3)代码混淆
将在之后的总结中,一一记录。

你可能感兴趣的:(android,android工具)