📝EditText TextWatcher 사용하기
에디트텍스트에 입력할때마다 그 내용이 바로 출력되게 TextWatcher를 사용
public class MainActivity extends AppCompatActivity {
EditText editText;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
textView = findViewById(R.id.textView);
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) {
// 텍스트 변한 후
// 유저가 텍스트를 입력할때마다 텍스트뷰에 똑같이 입력한 문자를 표시
String text = editText.getText().toString();
textView.setText(text);
}
});
}
}
+ 아래 코드처럼 검색이 바로 되게 입력할수도 있다
// 검색 버튼을 없애고 검색어 입력시 검색어 포함된 내용 가져오기
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) {
// 검색어 가져오기
String keyword = editSearch.getText().toString().trim();
// 2글자 이상 입력했을때만 검색이 되도록한다
if (keyword.length() < 2 && keyword.length() > 0) {
return;
}
// db의 content 부분에 search에 입력한 검색어가 포함된 내용만 가져오기
DatabaseHandler db = new DatabaseHandler(MainActivity.this);
MemoList = db.getSearchMemos(keyword);
db.close();
adapter = new MemoAdapter(MainActivity.this, MemoList);
recyclerView.setAdapter(adapter);
}
});
'Android Studio' 카테고리의 다른 글
[Android Studio] 안드로이드 네트워크 통신을 위해 앱의 권한 설정하기(+에뮬레이터용 네트워크 통신) (0) | 2023.02.03 |
---|---|
[Android Studio] xml 화면구성 visibility로 아이콘 숨기기 (0) | 2023.02.03 |
[Android Studio] TextView 글자 초과 말줄임(...) 으로 처리하기 (0) | 2023.02.02 |
[Android Studio] EditText 줄바꾸기, 뷰 크기 조절 (0) | 2023.02.02 |
[Android Studio] RecyclerView Adapter에서 AlertDialog 처리 (0) | 2023.02.02 |
댓글