반응형
- addTextChangedListener 와 TextWatcher 를 이용한 EditText 입력 변화 이벤트 처리 -
EditText에 사용자가 텍스트를 입력할때
입력 시점에 따라 이벤트를 주는 방법이 있는데
addTextChangedListener 와 TextWatcher를 이용하는것이다.
사용방법은 매우 간단하다.
addTextChangedListener 에 TextWatcher라는 인터페이스를 연결해주면 끝이다.
EditText edit = (EditText)findViewById(R.id.mineEdit);
edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 입력난에 변화가 있을 시 조치
}
@Override
public void afterTextChanged(Editable arg0) {
// 입력이 끝났을 때 조치
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 입력하기 전에 조치
}
});
기본적으로 이런식으로 처리를해주며
변화와 동시에 처리를 해주고자 할 때는 onTextChanged() 부분에
입력이 끝났을 때 처리는 afterTextChanged() 부분
입력하여 변화가 생기기 전에 처리는 beforeTextChanged() 부분에
작성을 해주면 된다.
여기서
더 나아가
editText가 많을 경우 저렇게 하나하나 처리해주기 보다는
전부 같은 처리를 해주고자 하면
따로 만들어 사용해도 좋다
private final TextWatcher textWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 입력하기 전에 조치
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 입력난에 변화가 있을 시 조치
}
public void afterTextChanged(Editable s) {
// 입력이 끝났을 때 조치
}
};
이런식으로 선언을 해두고
editBuildingName.addTextChangedListener(textWatcher);
editDong.addTextChangedListener(textWatcher);
editHo.addTextChangedListener(textWatcher);
editUp.addTextChangedListener(textWatcher);
editDown.addTextChangedListener(textWatcher);
editFloor.addTextChangedListener(textWatcher);
이런식으로 가져다 쓰면 된다.
반응형
댓글