Android TextWatcher.afterTextChanged बनाम TextWatcher.onTextChanged




android-textwatcher (2)

afterTextChanged बजाए afterTextChanged जाने के onTextChanged मुझे किस परिस्थिति में उपयोग करना चाहिए और इसके विपरीत? उदाहरणों पर ध्यान देने के साथ उदाहरण सबसे अधिक निर्देशक होंगे कि क्यों onTextChanged को ओवरराइड किया जाना चाहिए, लेकिन बाद में afterTextChanged और पहले beforeTextChanged को ओवरराइड करने की आवश्यकता नहीं है।


इन घटनाओं को निम्नलिखित क्रम में कहा जाता है:

  1. पहलेTxtChanged (CharSequence एस, int प्रारंभ, int गिनती, int के बाद)
    इसका मतलब है कि पात्रों को कुछ नए पाठ के साथ प्रतिस्थापित किया जा रहा है। पाठ असंभव है।
    उपयोग करें: जब आपको पुराने पाठ को देखने की आवश्यकता होती है जो बदलने वाला है।

  2. onTextChanged (CharSequence एस, int प्रारंभ, int पहले, int गिनती)
    परिवर्तन किए गए हैं, कुछ पात्रों को अभी बदल दिया गया है। पाठ असंभव है।
    उपयोग करें: जब आपको यह देखने की ज़रूरत है कि पाठ में कौन से वर्ण नए हैं।

  3. AfterTextChanged (संपादन योग्य एस)
    ऊपर जैसा ही है, अब छोड़कर पाठ संपादन योग्य है
    उपयोग करें: जब आपको नया टेक्स्ट देखने और संभवतः संपादित करने की आवश्यकता होती है।

अगर मैं सिर्फ EditText में बदलावों को सुन रहा हूं, तो मुझे पहले दो तरीकों का उपयोग करने की आवश्यकता नहीं होगी। मुझे तीसरी विधि में नए मान प्राप्त होंगे और यदि आवश्यक हो तो नया टेक्स्ट सही करें। हालांकि, अगर मुझे मूल्यों के साथ होने वाले सटीक परिवर्तनों को ट्रैक करना पड़ा, तो मैं पहले दो तरीकों का उपयोग करूंगा। यदि परिवर्तनों को सुनने के बाद मुझे टेक्स्ट को संपादित करने की आवश्यकता भी थी, तो मैं इसे तीसरी विधि में करूँगा।


Android Textwatcher एक प्रकार का ट्रिगर है जिसे इनपुट फ़ील्ड के टेक्स्ट चेंज पर बुलाया जाता है।

टेक्स्ट वॉचर में तीन घटनाएं हैं।

afterTextChanged (Editable s) - पाठ को बदल दिया गया है जब इस विधि को बुलाया जाता है। चूंकि आपके द्वारा किए गए कोई भी बदलाव इस विधि को दोबारा बार-बार कॉल करने का कारण बनेंगे, आपको यहां संचालन करने के बारे में सावधान रहना होगा, अन्यथा यह अनंत लूप का कारण बन सकता है।

beforeTextChanged (CharSequence s, int start, int count, int after) - इस विधि को आपको सूचित करने के लिए बुलाया जाता है कि, एस के भीतर, शुरुआत से शुरू होने वाले गिनती वर्णों को लंबाई के साथ नए पाठ द्वारा प्रतिस्थापित किया जा रहा है। यह कॉलबैक से परिवर्तन करने का प्रयास करने में त्रुटि है।

onTextChanged (CharSequence s, int start, int before, int count) - इस विधि को आपको सूचित करने के लिए बुलाया जाता है कि, एस के भीतर, शुरुआत से शुरू होने वाले गिनती वर्णों ने पुराने पाठ को प्रतिस्थापित किया है जो पहले की लंबाई थी। यह कॉलबैक से परिवर्तन करने का प्रयास करने में त्रुटि है।

बेहतर जानकारी के लिए आप यहां जा सकते हैं

http://developer.android.com/reference/android/text/TextWatcher.html





android-textwatcher