bufferknife总结(二)

来源:互联网 发布:昆仑墟麒麟臂升阶数据 编辑:程序博客网 时间:2024/06/05 11:44

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<EditText> 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这么简单,它还能…

For Listener

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

原创粉丝点击