2012-08-22 30 views
10

Uygulamamda Edit Text üzerinde TextWatcher koyuyorum. EditText'in metnini değiştirdiğimde, TextWatcher olayları iki kez çağrılıyor.TextWatcher olayları iki kez çağrılıyor

Uygulamayı çalıştırmak için kullanıyorum emülatör.

+0

Bazı kodları sağlayın .. – Slickelito

+0

kodu gönderin pls. – vipsy

+0

buradan bakın http://stackoverflow.com/questions/17535415/textwatcher-events-are-being-fired-multiple-times – susemi99

cevap

9

Kodunuz nasıl görünüyor? TextWatcher'ın normal davranışı budur. Örnek:

myInput.addTextChangedListener(new TextWatcher() { 
     boolean mToggle = false; 

     public void onTextChanged(CharSequence cs, int s, int b, int c) {} 

     public void afterTextChanged(Editable editable) { 
      if (mToggle) { 
       Toast.makeText(getBaseContext(), "HIT KEY",Toast.LENGTH_LONG).show(); 
      } 
      mToggle = !mToggle; 
     } 

     public void beforeTextChanged(CharSequence cs, int i, int j, int k) {} 
    }); 
+0

evet kodum aynıdır ancak bir tuşa bastığımda 'hit key' iki kez gösterilir –

+0

Tost Çağrılar sonradan çağırır. Bu yöntem isabet başına sadece bir kez çağrılmalıdır. –

+0

Eğer "HIT KEY" iki kez gelirse, totunuzu afterTextChanged AS Beike 'in önerisine yapıştırın. – raman

0

Sorunum onun geri aramalar iki kez çağrılmasına neden olan, iki kez mEditText.addTextChangedListener(mTextWatcher) textWatcher eklendi oldu!

textWatcher ürününü onCreate() numaralı telefona ve onStart() numaralı telefona bir kere ekledim. Yalnızca onStart numaralı belgeyi ekleyip onStop()'dan kaldırmalıyım.