1. View

@Bind (R.id.my_image_view)
ImageView myImageView;


2.Views

@Bind ({R.id.image_1,
               R.id.image_2,
               R.id.image_3})
List myImageViews;
@Bind ({R.id.image_1,
               R.id.image_2,
               R.id.image_3})
ImageView[] myImageViews;


3. OnClickListeners

@OnCLick(R.id.my_button)
public void onClick (View view) {
    // Process button click
}


4. OnFocusChangedListener

@OnFocusChange(R.id.my_edit)
public void inputFocusChanged (boolean hasFocus) {
  // true = your view gained focus
  // false = your view lost focus 
}


5. OnCheckedChangedListener

@OnCheckedChanged(R.id.my_chk)
public void checkboxToggled (boolean isChecked) {
  // true = checkbox is checked
  // false = checkbox is unchecked
}


6. OnItemSelectedListener

@OnItemSelected(R.id.my_spinner)
public void itemSelected (int position) {
  // you know which item is selected.
}
@OnItemSelected(value = R.id.my_spinner, 
        callback = NOTHING_SELECTED)
public void nadaSelected () {
  // nothing is selected.
}


7. OnPageChange

@OnPageChange(R.id.my_pager) 
public void pageSelected (int position) { 
  // page changed 
}


8. OnTextChanged

@OnTextChanged(R.id.my_edit)
public void textChanged (CharSequence text) {
  // text changed
}


9. Injection Before

public class MyActivity extends Activity {
  ImageView icon;
  Button btnOne;
  Button btnTwo;
  EditText name;
  protected void onCreate (Bundle savedState) {
    setContentView(R.id.activity_main);
    icon = (ImageView)findViewById(R.id.icon);
    btnOne = (Button)findViewById(R.id.button1);
    btnTwo = (Button)findViewById(R.id.button2);
    name = (Button)findViewById(R.id.edit);
  
    // Now the listeners ... will this ever end?
    btnOne.setOnClickListener (new View.OnClickListener () {
      public void onClick (View view) {
        // button one clicked
      } 
    });
    btnTwo.setOnClickListener (new View.OnClickListener () { 
      public void onClick (View view) {
        // button two clicked
      } 
    });
    edit.addTextChangedListener (new TextWatcher () {
      public void onTextChanged (CharSequence s, int start, int before, int count) {
        // text changed
      }
      public void beforeTextChanged (CharSequence s, int start, int count, int after) {
        // bloody boilerplate bloat
      }
      public void afterTextChanged (Editable s) {
        // bloody boilerplate bloat
      }
    });
  }
}


10. Injection After

public class MyActivity extends Activity {
  @InjectView(R.id.icon) ImageView icon;
  @InjectView(R.id.edit) EditText name;
  
  @Override
  protected void onCreate (Bundle savedState) {
    setContentView(R.id.activity_main);
    ButterKnife.inject(this);
    // et viola!
  }
  @OnTextChanged(R.id.edit)
  public void textChanged (CharSequence text) {
    // text changed
  }
  @OnClick(R.id.button1)
  public void buttonOneClicked () {
    // button one clicked
  }
  @OnClick(R.id.button2)
  public void buttonTwoClicked () {
    // button two clicked
  }
}

ButterKnife 참조

Posted by 조원오
: