사용자가 플래그가 지정된 단어를 입력 할 때이를 감지 할 수있는 EditText가 있습니다. 이 단어가 감지되면 버튼이 표시되고 사용자는 더 많은 옵션을 사용할 수 있습니다. TextWatcher로이 작업을 수행 할 수있었습니다. 문제는 Textwatcher에 의해 감지 될 때마다 배열에 사용 된 플래그가 지정된 단어를 저장한다는 것입니다. 그러나 단어가 EditText에 있으면 나중에 입력 된 모든 문자가 플래그가 지정된 단어가 EditText에 있기 때문에 다시 플래그가 지정된 단어가 배열에 입력됩니다. TextWatcher를 지울 수있는 방법이 있는지 궁금 해서요. 일단 플래그가있는 단어를 발견하면, 그 텍스트는 내가 입력 한 것만보기 시작합니다. 아래 코드의 변수 word는 프로그램에서 확인중인 플래그가있는 단어가 저장되는 곳입니다.특정 문자열을 감지하고 EditText를 계속 읽을 때마다 TextWatcher를 지우려고합니다.
txtMessage.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String tmp = s.toString().trim().toLowerCase();
if (flagged == true) {
CheckWords.setVisibility(0);
}
if (tmp.contains(word.toLowerCase())) {
flagwordsused[i] = word;
//txtPhoneNo.setText(""+tmp);
i++;
flagged = true;
}
}
});
도움을 주시면 감사하겠습니다. 어쩌면이 작업을 수행하는 완전히 다른 방법이있을 수 있습니다.