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 참조