दिलचस्प पोस्ट
स्रोत नियंत्रण में कितनी बार बदलाव करना है? कोको में एनएसडीटा-एईएस क्लास एन्क्रिप्शन / डिक्रिप्शन आईफ़ोन एसडीके में ग्रिड दृश्य ऐप स्टोर (iTunes) में अपने ऐप को कैसे जोड़ सकता हूं? यूएमएल के साथ टेम्पलेट वर्ग का प्रतिनिधित्व करने का सही तरीका क्या है? पंक्तियों को स्वाइप करते हुए या संपादित करें बटन पर क्लिक करते समय UITableViewCell में डिफ़ॉल्ट लाल रंग हटाएं बटन का रंग बदलें मुझे एक नि: शुल्क .नेट (सी #) पुस्तकालय कहां मिल सकता है, जिसे मैं स्कैन और ओसीआर दस्तावेज़ों में इस्तेमाल कर सकता हूं? एंड्रॉइड स्टूडियो में ऐप डीबग करने में सक्षम नहीं गिट कमिट संदेशः 50/72 प्रारूपण PHP सरल HTML DOM पार्सर का उपयोग करते हुए अजीब त्रुटि स्वत: लागू किए गए गुण ग # एक से अधिक विवरण दृश्य नियंत्रक को पुश करते समय "विजिटव्यूकंट्रोलर के लिए उपस्थिति संक्रमण शुरू करने / अंत करने के लिए असंतुलित कॉल" जावास्क्रिप्ट विंडो। केवल तभी खिड़की मौजूद नहीं है पूरे एएसपी .नेट एमवीसी आवेदन के भीतर प्राधिकरण की आवश्यकता कैसे होती है शीर्षक पृष्ठभूमि का रंग सेट करें

संपादन टेक्स में श्रुति गिनती श्रोता परिवर्तित

मेरी परियोजना में मेरे पास एक EditText मैं EditText में वर्णों को गिनना चाहता हूं, और उस संख्या को एक TextView में दिखाएं। मैंने निम्नलिखित कोड लिखा है और यह ठीक काम करता है हालांकि, मेरी समस्या तब होती है जब मैं बैकस्पेस को क्लिक करता हूं, लेकिन मुझे संख्या कम करने की आवश्यकता है मैं बैकस्पेस पर विचार कैसे कर सकता हूं?

 tv = (TextView)findViewById(R.id.charCounts); textMessage = (EditText)findViewById(R.id.textMessage); textMessage.addTextChangedListener(new TextWatcher(){ public void afterTextChanged(Editable s) { i++; tv.setText(String.valueOf(i) + " / " + String.valueOf(charCounts)); } public void beforeTextChanged(CharSequence s, int start, int count, int after){} public void onTextChanged(CharSequence s, int start, int before, int count){} }); 

Solutions Collecting From Web of "संपादन टेक्स में श्रुति गिनती श्रोता परिवर्तित"

उपयोग

 s.length() 

निम्नलिखित एक बार एक जवाब में सुझाव दिया गया था, लेकिन इसकी बहुत अक्षम

 textMessage.getText().toString().length() 

कैसे अपने संपादन टेक्स्ट में चारों की लंबाई प्राप्त करने और इसे प्रदर्शित करने के बारे में?

की रेखा के साथ कुछ

 tv.setText(s.length() + " / " + String.valueOf(charCounts)); 

आपके कोड में बहुत कम बदलाव:

 TextView tv = (TextView)findViewById(R.id.charCounts); textMessage = (EditText)findViewById(R.id.textMessage); textMessage.addTextChangedListener(new TextWatcher(){ public void afterTextChanged(Editable s) { tv.setText(String.valueOf(s.toString().length())); } public void beforeTextChanged(CharSequence s, int start, int count, int after){} public void onTextChanged(CharSequence s, int start, int before, int count){} }); 

भविष्य के दर्शकों के लिए अधिक स्पष्टीकरण के साथ यह थोड़ा अधिक सामान्य जवाब है

एक पाठ परिवर्तित श्रोता जोड़ें

यदि आप पाठ की लंबाई खोजना चाहते हैं या कुछ और करने के बाद पाठ को बदल दिया गया है, तो आप अपने संपादन पाठ में पाठ परिवर्तित श्रोता जोड़ सकते हैं।

 EditText editText = (EditText) findViewById(R.id.testEditText); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) { } @Override public void onTextChanged(CharSequence charSequence, int start, int before, int count) { } @Override public void afterTextChanged(Editable editable) { } }); 

श्रोता को beforeTextChanged आवश्यकता होती है, जिसके लिए ओवरराइड होने के तीन तरीकों की आवश्यकता होती है: beforeTextChanged , onTextChanged beforeTextChanged , onTextChanged , और afterTextChanged

वर्णों की गिनती

आप उस पर वर्ण की गणना कर सकते हैं

 charSequence.length() 

या बाद में afterTextChanged साथ afterTextChanged गया

 editable.length() 

तरीकों का अर्थ

पैरामीटर थोड़ा भ्रामक हैं इसलिए यहां थोड़ा अतिरिक्त विवरण दिया गया है।

beforeTextChanged

beforeTextChanged(CharSequence charSequence, int start, int count, int after)

  • charSequence : लंबित परिवर्तन किए जाने से पहले यह टेक्स्ट सामग्री है आपको इसे बदलने की कोशिश नहीं करनी चाहिए।
  • start : यह वह स्थान है जहां नया पाठ डाला जाएगा। अगर कोई सीमा चयनित है, तो यह सीमा का प्रारंभ सूचकांक है
  • count : यह चयनित पाठ की लंबाई है जिसे प्रतिस्थापित किया जा रहा है। यदि कुछ भी नहीं चुना जाता है तो count 0 होगी
  • after : यह सम्मिलित किए जाने वाले पाठ की लंबाई है।

onTextChanged

onTextChanged(CharSequence charSequence, int start, int before, int count)

  • charSequence : यह परिवर्तन सामग्री के बाद पाठ सामग्री है। आपको इस मूल्य को यहाँ संशोधित करने की कोशिश नहीं करनी चाहिए। यदि आप की आवश्यकता है तो afterTextChanged बाद में editable को संशोधित करें
  • start : यह start का सूचकांक है जहां नया पाठ डाला गया था।
  • before : यह पुराना मूल्य है यह पहले चयनित पाठ की लंबाई है जो प्रतिस्थापित किया गया था। इससे पहले की count रूप में यह वही मूल्य है।
  • count : यह उस पाठ की लंबाई है जो डाला गया था। यह पहले के after रूप में एक जैसा मान है।

afterTextChanged

afterTextChanged(Editable editable)

इस तरह के परिवर्तन पर पहले से ही बना दिया गया है, जिसे बाद में कहा जाता है। हालांकि, अब पाठ को संशोधित किया जा सकता है

  • editable : यह संपादन टेक्स्ट का संपादन योग्य टेक्स्ट है यदि आप इसे बदलते हैं, हालांकि, आपको सावधान रहना होगा कि वह अनंत लूप में न जाए। अधिक जानकारी के लिए दस्तावेज़ीकरण देखें।

इस उत्तर से पूरक छवि

यहां छवि विवरण दर्ज करें