본문 바로가기
Android Studio

[Android Studio] EditText TextWatcher 사용하기

by coding_su 2023. 2. 3.

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

            }
        });

댓글