android on Text Change Listener
이 질문은 두 개의 EditText 필드에 텍스트 변경 리스너를 적용할 때 무한 루프를 방지하는 솔루션을 모색합니다. 필드1과 필드2. field1에서 텍스트가 변경되면 field2가 지워지고 그 반대도 마찬가지입니다.
초기 구현에는 TextWatcher를 두 필드 모두에 연결하는 작업이 포함되었습니다. 여기서 field1에서 텍스트가 변경되면 field2가 지워지고 그 반대의 경우도 마찬가지입니다. 그러나 이로 인해 필드가 서로 무기한 변경을 시도하여 충돌이 발생했습니다.
해결책:
무한 루프를 방지하기 위해 다음에 검사를 추가할 수 있습니다. TextWatchers는 텍스트가 비어 있지 않을 때(즉, 길이가 다음과 다를 때)에만 다른 필드를 지웁니다. 0).
업데이트된 구현은 다음과 같습니다.
field1.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length() != 0) field2.setText(""); } }); field2.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length() != 0) field1.setText(""); } });
이 접근 방식을 사용하면 field1이 변경되고 텍스트가 있을 때 field2가 지워집니다. 마찬가지로 field2는 텍스트가 비어 있지 않은 경우에만 field1을 지웁니다. 따라서 원하는 동작을 달성하면서 무한 루프를 피할 수 있습니다.
위 내용은 텍스트 변경 시 EditText 필드를 지울 때 무한 루프를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!