जोड़ने से पहले टेक्स्ट सेट किया है, फिर भी, मैं पहले टेक्स्ट को एडिटटेक्स्ट में पुनर्प्राप्त करता हूं और उसके बाद टेक्स्टवैचर जोड़ता हूं।टेक्स्टवॉचर ने एंड्रॉइड गतिविधि में वॉचर
private static int WC = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("TextWatcherTest", "onCreate:\t" +CLASS_NAME);
setContentView(R.layout.main);
EditText et = (EditText)findViewById(R.id.editText);
Log.e("TextWatcherTest", "Set text xyz");
et.setText("xyz");
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable s) {
Log.e("TextWatcherTest", "afterTextChanged:\t" +s.toString());
}
});
}
लेकिन जब मैं गतिविधि चलाने के लिए, afterTextChanged विधि भले ही चौकीदार ही पाठ सेट करने के बाद जोड़ा जाता है कहा जाता है। इसलिए लॉग उत्पादन की तरह
onCreate: LifecycleMain Set text xyz // screen rotation onCreate: LifecycleMain Set text xyz afterTextChanged: xyz 2
कुछ TextWatcher में काउंटर से पता चलता है कि द्रष्टा कि कहा जाता है कि एक के बाद पाठ EditText में स्थापित किया गया था जोड़ा गया है है। कोई विचार क्यों होता है और मैं इसे कैसे रोक सकता हूं?
वास्तव में नहीं। यह वास्तव में सच है कि यह पहली बार गतिविधि बनने पर काम करता है, लेकिन एडिटटेक्स्ट हर बार एक नया उदाहरण है जब बिना किसी वॉचर से जुड़ा होता है। मैंने कोड को सरल बना दिया और वॉचर को काउंटर जोड़ा: – SimonSays
क्या आपने संपादन टेक्स्ट को स्थिर के रूप में परिभाषित किया है? यदि हां यह कारण हो सकता है। और जैसा कि आप उल्लेख करते हैं कि यह पहली बार f9 काम करता है, तो जांच निश्चित रूप से है कि ediText का नया उदाहरण प्रत्येक बार –
क्षमा नहीं किया जा रहा है, मैंने इसे समाप्त करने से पहले अपनी टिप्पणी अपडेट की है। मैंने अभी उपरोक्त कोड अपडेट किया है। मैंने इसे सरल बना दिया और टेक्स्टवॉचर के लिए एक काउंटर जोड़ा। आप क्या देख सकते हैं कि गतिविधि पहली बार गतिविधि बनने पर पहली बार दिखाई नहीं दे रही है, लेकिन दूसरी बार। लेकिन, दूसरा टेक्स्टवॉचर उदाहरण कहा जाता है, पहले नहीं। एडिटटेक्स्ट हमेशा किसी भी वॉचर संलग्न किए बिना एक नया उदाहरण है। और नहीं; EditText स्थिर परिभाषित नहीं है। – SimonSays