코틀린으로 작성한 안드로이드 TextWatcher Event Listener 사용하기
오늘은 안드로이드 EditText에서 쓰이는 이벤트 리스너인 TextWatcher를 코틀린으로 작성해보려 합니다.
기존 자바 코드
EditText editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable p0) {
}
@Override
public void beforeTextChanged(CharSequence p0, int p1, int p2, int p3) {
}
@Override
public void onTextChanged(CharSequence p0, int p1, int p2, int p3) {
}
});
기존에 자바 코드로 작성할 때에는 findViewById로 xml에서 editText라는 아이디를 가져와서 TextWatcher를 TextChangedListener에 추가해주었습니다.
코틀린 코드
ediTtext.addTextChangedListener(object : TextWatcher{
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
})
코틀린 익스텐션의 존재 유무과 코틀린 문법에 따른 차이점으로 인한 것만 아니면 자바 코드와 매우 흡사함을 알 수 있습니다.
afterTextChanged
입력이 끝날 때 작동됩니다.
beforeTextChanged
입력 하기 전에 작동됩니다.
onTextChanged
타이핑 되는 텍스트에 변화가 있으면 작동됩니다.
Written on August 15, 2018