2012-08-22 14 views
10

कहा जा रहा है मेरे आवेदन पर मैंने टेक्स्टवॉचर को EditText पर रखा है। जब मैं एडिटटेक्स्ट के पाठ को बदलता हूं, तो टेक्स्टवॉचर की घटनाओं को दो बार बुलाया जाता है।टेक्स्टवॉचर की घटनाओं को दो बार

मैं ऐप चलाने के लिए एमुलेटर का उपयोग कर रहा हूं।

+0

कुछ कोड प्रदान करें .. – Slickelito

+0

कोड pls पोस्ट करें। – vipsy

+0

यहां देखें http://stackoverflow.com/questions/17535415/textwatcher-events-are-being-fired-multiple-times – susemi99

उत्तर

9

आपका कोड कैसा दिखता है? यह टेक्स्टवॉचर का सामान्य व्यवहार है। उदाहरण:

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

हाँ मेरा कोड वही है लेकिन 'हिट कुंजी' दो बार दिखाया गया है जब मैं एक कुंजी –

+0

दबाता हूं टोस्ट कॉल के बाद टोस्ट कॉल करें। इस विधि को प्रति हिट केवल एक बार कहा जाना चाहिए। –

+0

हाँ यदि "हिट कुंजी" दो बार आता है, तो बाद में अपने टोस्ट को पेस्ट करें। – raman

0

मेरे समस्या मैं textWatcher दो बार mEditText.addTextChangedListener(mTextWatcher) जोड़ा है, जो अपनी कॉलबैक दो बार फोन करने की ओर जाता है था!

मैंने onCreate() में एक बार टेक्स्टवॉचर जोड़ा था और एक बार onStart() में। मुझे केवल onStart में जोड़ना चाहिए और onStop() में हटा देना चाहिए।

संबंधित मुद्दे