Ich benutze Textbeobachter auf einem Text bearbeiten und das bearbeiten Text ist in der Listenansicht. Ich muss eine Methode aufrufen, während Textlänge bearbeiten == 3. Aber die Text-Beobachter-Ereignisse werden mehr als einmal ausgeführt. Hier ist mein Code:Android: Textüberwachung onTextChanged und afterTextChanged Ereignisse, die mehrmals ausgelöst werden.
holder.etTypeKeyword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//System.out.println("KEYWORD TYPED : "+s+ " count : "+count);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length()==3){
// isServiceCall=true;
System.out.println("CALLING COUNT : " + position + " Length "+holder.etTypeKeyword.getText());
obKeywordSuggestionInterface.getKeywordUsingChar(s.toString(),position);
}else{
// isServiceCall=false;
}
}
});
Hier ist meine Logausgabe wo Zählung Nachricht
>I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length
I/System.out: CALLING COUNT ACT : 2 Length Fun
Bitte einige Körper bitte auf diese helfen mir wiederholt, um mehrere Ausführung von Text watcher Ereignisse zu beschränken. Danke im Voraus.
Von Einstellung wo ist ‚CALLING COUNT ACT‘ angemeldet zu werden? – Shaishav
Das liegt daran, dass es in einer ListView oder RecyclerView ist. Wenn Sie blättern, wird die Methode für jedes Element in der Liste aufgerufen. –
@Shaishav. Es ist eine Listenansicht. Ich scrolle nicht. Eingabe von Zeichen innerhalb von Text und Methode ** obKeywordSuggestionInterface.getKeywordUsingChar (s.toString(), position); ** mehrfach aufgerufen. – Harry