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);
}
});
'안드로이드 스튜디오' 카테고리의 다른 글
[ 안드로이드 ] 이미지 처리를 위한 Glide 라이브러리 사용법 (2) | 2022.07.20 |
---|---|
[ 안드로이드 ] ActionBar menu 사용법 (0) | 2022.07.19 |
[ 안드로이드 ] Serializable을 활용하여 액티비티에 객체 전달 (0) | 2022.07.18 |
[ 안드로이드 ] 데이터베이스 SQLite 사용법 / CRUD 예제 (0) | 2022.07.15 |
[ 안드로이드 ] 어댑터(Adapter) 란? 어댑터 사용법 (0) | 2022.07.15 |