본문 바로가기
Language/Android

[Android] 안드로이드_EditText 입력 변화 이벤트 처리 (feat. addTextChangedListener, TextWatcher)

by 썸머워즈 2020. 1. 20.
반응형


- 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);


이런식으로 가져다 쓰면 된다.


반응형


댓글

TOP