butterknife 코드 간단하게 바꾸는 오픈소스
Java/Android 2017. 5. 4. 16:22 |
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}) ListmyImageViews;
@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 참조
'Java > Android' 카테고리의 다른 글
apk 파일 다컴파일 및 소스보기 (0) | 2018.02.26 |
---|---|
Error:Execution failed for task ':app:preDebugAndroidTestBuild'. 에러 (1) | 2018.02.26 |