2016-08-12 1 views
0

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.

+0

Von Einstellung wo ist ‚CALLING COUNT ACT‘ angemeldet zu werden? – Shaishav

+0

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. –

+0

@Shaishav. Es ist eine Listenansicht. Ich scrolle nicht. Eingabe von Zeichen innerhalb von Text und Methode ** obKeywordSuggestionInterface.getKeywordUsingChar (s.toString(), position); ** mehrfach aufgerufen. – Harry

Antwort

0

Bitte stellen Sie sicher, dass Sie nicht Text auf EditText innerhalb obKeywordSuggestionInterface.getKeywordUsingChar

Verwandte Themen