Sam Story

2024-08-31 textWatcher를 이용한 EditText Text 공유 본문

공부기록

2024-08-31 textWatcher를 이용한 EditText Text 공유

Sam H 2024. 8. 31. 17:34

팀 프로젝트 작업이 끝나고

 

포트폴리오 작성을 위해 개인프로젝트 시연영상을 찍는데

조금씩 문제가 발생하고 있어야할 기능이 없는 경우도 있어 시간이 지체되고 있다..

 

개인프로젝트 문제해결을 진행중에

댓글 수정 기능을 만들다가 EditText 두개를 운용하는게 나을것 같아서 EditText 두개를

연결하게 하는 기능에 대해 포스팅 해보려 한다.

 

오늘 사용할 기능은 TextWatcher이다.

et_editComment.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            
            // 필요시 작성

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                // 텍스트가 변경될 때마다 다른 EditText 업데이트
                if (!et_inputFeedComment.getText().toString().equals(s.toString())) {
                
                    et_inputFeedComment.removeTextChangedListener(this);
                    et_inputFeedComment.setText(s.toString());
                    et_inputFeedComment.addTextChangedListener(this);
                    
                }

            }

            @Override
            public void afterTextChanged(Editable s) {
            
            // 필요시 작성

            }
        });
        
        
et_inputFeedComment.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            
            // 필요시 작성

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            
                // 텍스트가 변경될 때마다 다른 EditText 업데이트
                if (!et_editComment.getText().toString().equals(s.toString())) {
                
                    et_editComment.removeTextChangedListener(this);
                    et_editComment.setText(s.toString());
                    et_editComment.addTextChangedListener(this);
                    
                }
                
            }

            @Override
            public void afterTextChanged(Editable s) {
            
            // 필요시 작성

            }
        });

 

TextWatcher에 대해서는 포스팅을 한적이 없지만

 

EditText 에 Text를 입력할때 상태 변화에 대한걸 다룰 수 있는 메서드다.

 

onTextChange가 텍스트가 변할때의 동작이라고 보면되는데

 

두가지 EditText onTextChange메서드에 각각의 editText의 text를 set 해주면서

Listener을 초기화 해주는 방법으로 마치 두가지 EditText가 연결되어 있는것 처럼 나타낼 수 있다.

 

 

경우에 따라서 좀 더 자연스럽게 사용할 기회가 많을 것 같다.