안드로이드 스튜디오
[ 안드로이드 ] EditText 입력 변화 처리, TextWatcher 사용법
zzuvely
2022. 7. 18. 12:18
TextWatcher 란?
EditText에 텍스트를 입력했을 때, 입력 변화 이벤트 처리를 해주는 클래스이다.
beforeTextChanged() | 입력하여 변화가 생기기 전에 처리 |
onTextChanged() | 변화와 동시에 처리 |
afterTextChanged() | 입력이 끝났을 때 처리 |
사용법
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
사용 예제
editSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
// 키워드 검색 EditText 에 글자를 쓸때마다,
// 자동으로 해당 검색어를 가져와서 디비에서 쿼리해서
// 검색 결과를 화면에 표시해주는 기능 개발
// 1. EditText 에서 검색어 가져온다.
String keyword = editSearch.getText().toString().trim();
// 검색 키워드가 2글자 미만일 때 return, 검색 불가능
if (keyword.length() < 2) {
return;
}
// 2. 검색어로 DB 에 쿼리한다.
DatabaseHandler db = new DatabaseHandler(MainActivity.this);
memoList = db.searchMemo(keyword);
// 3. 검색어로 매칭한 메모 결과들을 화면에 표시한다.
adapter = new MemoAdapter(MainActivity.this, memoList);
recyclerView.setAdapter(adapter);
}
});