안드로이드

TextWatcher

정창수 2011. 1. 27. 17:43

TextWatcher만 단순히 놓고 보자면 얘는 텍스트 입력에 변화가 있을 때마다 이벤트에 맞춰 호출 되는 클래스다.

Summmary를 살펴 보면 가지고 있는 인터페이스는 총 3개

afterTextChanged(Editable s)
- Text 변화 후 발생

beforeTextChanged(CharSequence s, int start, int count, int after)
- 새로운 텍스트 길이로 변화 하게 되면 발생

onTextChanged(CharSequence s, int start, int before, int count)
- 텍스트 변경 시마다 불림

사실 가장 많이 사용되는게 onTextChanged 인데 가만 보면 각각 이벤트를 맞춰서 해줘야 할 때가 적지 않은 것 같다.  

Editable, CharSequence 모두 현재 입력되고 있는 텍스트를 의미한다. start는 시작 위치, count는 글자의 길이, before는 붙여넣기나 잘라내기를 할 때 나타나는 이전에 존재하던 길이를 의미한다. after는 이후의 길이를 말한다. 

setSpan을 보면 start, end Index를 입력 받게 되던데. 이때 주로 start, start+count를 이용한다.
실제 값을 찍어보면 EditText는 1정도의 공간을 가지고 있다. 즉 한칸도 입력되지 않아도 기본 length는 1.