편집 텍스트에서 몇 가지 나쁜 단어를 삭제하고 싶습니다. 아버지 삼촌 사촌 왕은 F ** K가 될 것입니다. 그러나 문제는 내가 텍스트를 변경하면 처리기를 다시 변경하는 것입니다. 누구나 솔루션을 알고 있습니다. 도와주세요. 코드가 있습니다.EditText TextChangedListener에서 재귀를 제거하는 방법?
search_name.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
search_name.setText(s.toString().replace("something", "s**ething"));
// here comes it repeatedly
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});
대신 InputFilter를 사용하십시오. – njzk2
'InputFilter'에 대해서 알고 있지만 많은 경우이 재귀를 제거해야합니다. – pcbabu
TextWatcher에서 setText를 호출 할 경우 재귀가 발생합니다. 재귀 루프에서 setText를 호출하지 않으려면 플래그를 사용하거나이 용도에 더 적합한 InputFilters를 사용할 수 있습니다. – njzk2