Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- android
- podinit
- viewmodel
- springboot
- RestAPI
- calendar
- livedata
- cocoapod
- Button
- addTextChangedListner
- PostgreSQL
- editText
- 리눅스
- prolificinteractive/material-calendarview
- Dialog
- backgroundTint
- DialogFragment
Archives
- Today
- Total
코코딩딩
[안드로이드/android] addTextChangedListener setText 무한루프 해결 본문
editText의 변화를 감지해 특정 조건을 만족하면 editText를 비어있는 상태로 만들고 싶어 setText(""); 를 했더니 무한 루프에 빠지는 버그가 발생했다. 해결하기 위해 다음과 같은 코드를 추가해 주었다.
binding.pwEt.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) {
}
@Override
public void afterTextChanged(Editable s) {
if(binding.idEt.getText().length() == 0){
binding.pwEt.removeTextChangedListener(this);
binding.pwEt.setText("");
binding.pwEt.addTextChangedListener(this);
}else{
}
}
idEt에 입력된 text가 없으면 pwEt에 text를 입력해도 지워지는 동작을 구현하였다. 위와같은 코드를 추가하지 않고 setText를 하면 다시 리스너를 불러와 무한루프에 빠지기 때문에 일단 removeTextChangedListner를 이용해 리스너를 지워주고 text를 set 한 다음 다시 listner를 추가해주는 형태로 구현하면 된다.
'일단기록 > 간단기록' 카테고리의 다른 글
[JAVA] 만 나이 계산하기 (0) | 2022.05.25 |
---|---|
[JAVA] 시간 계산 하기 (0) | 2022.05.20 |
[안드로이드/android] activity 화면 전환 데이터 주고받기 (intent) (0) | 2022.05.19 |
[안드로이드/android] editText 위에 겹쳐진 버튼 (0) | 2022.05.18 |
[안드로이드/android] 비밀번호,핸드폰번호 정규식 (0) | 2022.05.11 |