2011-09-12 5 views
60

मेरे पास EditText है और मुझे उसमें टेक्स्ट की आवश्यकता है (जब उपयोगकर्ता प्रकार में) पूंजी पत्र के साथ शुरू किया जाना चाहिए।कैपिटल लेटर में टेक्स्ट शुरू करने के लिए एडिटटेक्स्ट को कैसे लागू करें?

+3

+1 खोज योग्यता के लिए: पी –

उत्तर

125

सावधान रहो अगर आप, android:capitalize="sentences" और android:inputType="text" दोनों को जोड़ने के रूप में उत्तरार्द्ध प्राथमिकता दी जाती है करने के लिए पहली और इनपुट बड़े अक्षरों में नहीं किया जाएगा लगता है।

android:inputType="textCapSentences"

देखें http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType

+1

अच्छा टिप! मेरे पास दोनों था और यह नेक्सस वन और गैलेक्सी नेक्सस पर अपेक्षित काम करता था। लेकिन एक एचटीसी सेंस डिवाइस पर, शब्दों को पूंजीकृत नहीं किया गया था। एंड्रॉइड: इनपुट टाइप चाल थी। – BoD

+8

चेतावनी का शब्द: चूंकि मेरे मामले में फ़ील्ड किसी व्यक्ति का नाम होने वाला था, मैंने एंड्रॉइड सेट किया: inputType = "textPersonName"। यह अपेक्षित के रूप में काम नहीं करता था: मुझे एंड्रॉइड का उपयोग करना था: inputType = "textCapWords" नाम के प्रत्येक शब्द को कैपिटल बनाने के लिए। –

+1

एंड्रॉइड: capitalize = "वाक्यों" को इस टैग का उपयोग नहीं करना चाहिए bcuz इसे – pioneerBhawna

21

एंड्रॉयड के लिए विकल्प:

वहाँ स्वचालित रूप से पहले अक्षर को बड़ा करना के लिए एक विशिष्ट inputType है भुनाने

android:capitalize="none", which won't automatically capitalize anything. 

android:capitalize="sentences", Which will capitalize the first word of each sentence. 

android:capitalize="words", Which Will Capitalize The First Letter Of Every Word. 

android:capitalize="characters", WHICH WILL CAPITALIZE EVERY CHARACTER. 
+3

का उपयोग करें इस विधि को बहिष्कृत किया गया है। – h8pathak

+0

@ h8pathak इनपुट टाइप इस विधि के पक्ष में उपयोग किया जाना चाहिए। –

3

हैं लेआउट एक्सएमएल में ,जोड़ें

6

इस तरह की कोशिश करो,

testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS); 

या android:inputType="textCapSentences" ही काम अपने डिवाइस कुंजीपटल ऑटो सेटिंग सक्षम कैपिटल में लिखें तो होगा।

+0

स्वीकृत उत्तर बहुत अच्छा है, लेकिन मैं कोडिंग उत्तर की तलाश में था, यह काम करता है। टीएक्स –

1

पेस्ट यह आपके edittext में (xml):

android:capitalize="sentences" 
8

अपने XML

android:inputType="textCapWords" 

android:inputType="textCapSentences" में इस जोड़े वाक्य के लिए काम करेंगे। हालांकि, मुझे एक पूर्ण नाम फ़ील्ड में हर शब्द को पूंजीकृत करने की आवश्यकता थी।

+0

धन्यवाद आदमी! उम्मीद के अनुसार काम करता है :) –

8

उपयोग

android:inputType="textPersonName|textCapWords" 

का उपयोग कर के रूप में केवल "textPersonName" पर्याप्त इतना नाम का पहला शब्दों को बड़ा किया जाएगा नहीं है।

इसी डाक के पते के साथ

:

android:inputType="textPostalAddress|textCapSentences" 
+0

धन्यवाद यह अपेक्षित के रूप में काम करता है ... –

2

आप शब्द "लागू करें" का इस्तेमाल किया। तो इसे आजमाएं। बस अपने edittext तर्क के रूप में पास करें।

public static void setCapitalizeTextWatcher(final EditText editText) { 
    final TextWatcher textWatcher = new TextWatcher() { 

     int mStart = 0; 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      mStart = start + count; 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      String input = s.toString(); 
      String capitalizedText; 
      if (input.length() < 1) 
       capitalizedText = input; 
      else 
       capitalizedText = input.substring(0, 1).toUpperCase() + input.substring(1); 
      if (!capitalizedText.equals(editText.getText().toString())) { 
       editText.addTextChangedListener(new TextWatcher() { 
        @Override 
        public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

        } 

        @Override 
        public void onTextChanged(CharSequence s, int start, int before, int count) { 

        } 

        @Override 
        public void afterTextChanged(Editable s) { 
         editText.setSelection(mStart); 
         editText.removeTextChangedListener(this); 
        } 
       }); 
       editText.setText(capitalizedText); 
      } 
     } 
    }; 

    editText.addTextChangedListener(textWatcher); 
} 
1
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()}); 
+0

जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code- आधारित उत्तर) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। स्पष्टीकरण टिप्पणियों के साथ अपने कोड को भीड़ न करने का प्रयास करें, इससे कोड और स्पष्टीकरण दोनों की पठनीयता कम हो जाती है! –

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