우선, 이 글을 보시기전에 Proguard를 적용하실 App은 약간 고려해보세요.
저 같은 경우, 여러 Library와 혼동되서 쓰다보니 ButterKnife 쪽에서 Proguard를 하면 찾지 못하는 부분이 있었습니다.
그런 분들은 사용 안하시는편이 좋을듯 합니다.
ButterKnife를 접하게 된지는 얼마 되지 않았습니다.
처음에 annotation으로 멀 하는거지? 하며 크게 관심을 가지지 않았지만,
Android 개발할때, 정말 편한 기능 입니다.
몇가지만 공유하고자 이렇게 블로그를 씁니다.
1. findViewById 여 이제 안녕~
안드로이드 개발을 처음 시작 하게 되면, 화면 Layout을 잡은 후 해당 View를 전부 findViewById 로 찾아 전역변수를 빼놓는 경우가 많을 겁니다.
(아니신 분들도 있으신가요?? 그냥 제 경우에..^^a)
그럴때마다 전역변수 만들고, 해당 전역 변수를 findViewById를 통해서 가지고 오고 또 Cast 합니다.
그럼 소스 줄이 주루룩 늘어나지요.
하지만 ButterKnife 라이브러리를 쓰면 이 모든게 한줄로 끝납니다. (ButterKnife bind 하는 함수는 빼구요^^a)
즉, 아래 소스가
private EditText mEditHtml;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditHtml = (EditText) findViewById(R.id.edit_html);
}
이렇게 바뀌는 겁니다.
@Bind(R.id.edit_html) EditText mEditHtml;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
mEditHtml.setText("<b></b>");
}
이게 머야~ 하시겠지만, 소스가 커지거나 유지보수 할 때 한눈에 알아보기도 편합니다. 제가 소스를 적게 만들어서 더욱 못 느껴 지신가 봅니다.
2. OnClickListener 여 이제 안녕~
OnClickListener를 사용할려면, 아래와 같은 로직으로 하는 경우가 많습니다.
- OnClickListener를 implements 시킨다.
- 해당 View에 setOnClickListener 함수를 호출한다.
- OnClick 함수를 오버라이딩 한다.
- view.getId()를 Switching하여 구분 한다.
그래서 이리 갔다가 저리 갔다가 정신 없이 코딩하고 빼먹은게 있어서 오류가 발생하기도 하죠.
// OnClick
@OnClick(R.id.btn_image_select_) void imageSelect() {
// 이벤트 처리
}
위와 같이 함수 하나만 정의하면 OnClick 끝입니다.
3. getResources 여 이제 안녕~
strings.xml에서 string을 가지고 올때는 getResources().getString(R.string.xxxx) 이런식으로 가지고 옵니다.
class ExampleActivity extends Activity { @BindString(R.string.title) String title; @BindDrawable(R.drawable.graphic) Drawable graphic; @BindColor(R.color.red) int red; // int or ColorStateList field @BindDimen(R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field // ... }
ButterKnife 에서는 위와 같이 Resource 들을 바로 가지고 올수가 있습니다.
이외에도 좋은 기능 들이 많습니다. View 들의 List를 만들수도 있구요. 머 등등
한번 보시고 사용하시면 좋을 것 같아 공유해드립니다.
감사합니다.
ButterKnife 설명 : http://jakewharton.github.io/butterknife/
ButterKinfe gitHub : https://github.com/JakeWharton/butterknife
## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.
내용이 부실해도 이해해 주시길 바랍니다.
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] Uri 에서 filePath 가져오기 (2) | 2015.11.18 |
---|---|
[Android] ACTION_PICK 사용 (이미지 가져오기) (0) | 2015.11.18 |
[Android][펌]안드로이드 Intent 사용법 (0) | 2015.11.17 |
[Android] TabLayout with ViewPager 에서 tab을 클릭 했을 때 (0) | 2015.11.17 |
[Android] Fragment transition 이용시 (2) | 2015.11.17 |