[Android] 텍스트 실시간 입력 - TextWatcher

원준·2023년 7월 20일

Android Studio

목록 보기
19/40

TextWatcher ?

  • 값을 입력받는 EditText의 값이 변경될때마다 작업을 처리하게 해주는 인터페이스
  • 인터페이스 필수 구현 함수들
    1. beforeTextChanged(CharSequence s. int start, int count, int after)
      • CharSequece s : 현재 EditText에 입력된 값
      • int start : s에 저장된 문자열에서 새로 추가될 문자열의 시작 위치 값
      • int count : s에 새로운 문자열이 추가된 후 문자열의 길이
      • int after : 새로 추가될 문자열의 길이
    2. onTextChanger(CharSequence s, int start, int before, int count)
      • start 위치에서 before 문자열 개수만큼 문자열이 count 개수만큼 변경되었을 때 호출
      • CharSequence s : 새로 입력한 문자열이 추가된 EditText의 값을 가지고 있음
      • int start : 새로 추가된 문자열의 시작 위치 값
      • int before : 삭제된 기존 문자열의 개수
      • int count : 새로 추가된 문자열의 개수
    3. afterTextChanged(Editalbe a)
      • Text가 변경된 것을 다른곳에 통보할때 사용된다.
  • 구현 함수들의 차이
    • 스택오버플로우에 좋은 예시 git이 있다.

그래서 사용은 ?

  • 사용 방법은 의외로 간단하다.

  • EditText의 변수를 하나 정해서 실시간 탐색을 넣으면 알아서 작동한다.

    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 search = editSearch.getText().toString();
    
           if(search.isEmpty()){
               onResume();
    
               return;
           }
           
           txtView.setText(search);
       }
    });
profile
공부해보자

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기