안드로이드 앱을 개발하시는 분이라면 거의 대부분 알고 계시는 버터나이프(Butter Knife)
@BindView 어노테이션을 이용해서 findViewById의 반복 사용을 제거해주고,
@OnClick 어노테이션으로 클릭 이벤트를 대체해주고,
@BindString, BindColor 어노테이션으로 리소스의 값들도 쉽게 가져올 수 있는
정말 정말 유용한 라이브러리입니다.
이 3가지 외에도 @OnTextChanged 어노테이션이 있습니다.
이름 그대로 텍스트가 변경되는 이벤트를 대체해줍니다.
보통 EditText의 값이 변경되는 이벤트는 addTextChangedLister 리스너와 TextWatcher 인터페이스를 사용합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { } }); | cs |
다수의 EditText의 입력을 감지하기 위해서는
TextWatcher를 상속받는 별도의 CustomTextWatcher클래스를 생성한 후
각각의 EditText에 리스너를 추가하고
CustomTextWatcher에서 각각의 EditText에 맞는 작업을 수행하게 작성해야합니다.
이 과정에서 CustomTextWatcher를 만드는 것도 귀찮고
각각의 EditText에 리스너를 추가하는 것 또한, 코드를 길어지게 만듭니다.(마치 findViewById 처럼)
하지만 @OnTextChanged 를 사용하면 위의 과정이 다 필요없고 코드도 간결해집니다.
1 2 3 4 | @OnTextChanged(R.id.editText) public void editText(CharSequence text){ Log.d("TAG", text.toString); } | cs |
끝입니다.
EditText의 값이 변경되는 이벤트를 아주 간단하게 해결할 수 있습니다.
이외에도 버터나이프에는 다양한 Listener Binding들이 있습니다.
http://craftedcourses.io/all-about-butter-knife-part-3/
위의 링크에서 버터나이프의 다양한 기능들을 확인해보시고
필요한 기능들을 잘 활용하시기 바랍니다.
'Android' 카테고리의 다른 글
[Android]Retrofit2 간단 사용법 (5) | 2017.11.07 |
---|---|
[Android]안드로이드 스튜디오 3.0 레이아웃 프리뷰 렌더링 에러 (0) | 2017.10.31 |
[Android]이메일&비밀번호 정규식 (0) | 2017.10.15 |
[Android]투명도, 알파값 정리 (1) | 2017.09.19 |
[Android]현재 날짜(년-월-일-시-분-초) 구하기(SimpleDateFormat) (0) | 2017.09.07 |