2010-08-05 13 views
42

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

धन्यवाद!

उत्तर

98

मैं मानक जावा स्ट्रिंग परिवर्तन, कुछ भी Android या TextView विशिष्ट के माध्यम से यह पूरा करने में सक्षम होना चाहिए।

कुछ की तरह:

String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1); 

हालांकि शायद यह पूरा करने के एक लाख तरीके हैं। String दस्तावेज़ीकरण देखें।

+4

बस ध्यान दें कि यह अंग्रेजी के लिए एक अच्छा समाधान है चाहता था से पहले अक्षर टोपी होगा, लेकिन अनुकूल स्थानीयकरण नहीं। –

+0

दूसरे का एक अंश लिया ... धन्यवाद, दोस्त ... –

13
StringBuilder sb = new StringBuilder(name); 
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); 
return sb.toString(); 
3
भविष्य आगंतुकों के लिए

, आप भी (सबसे अच्छा IMHO) WordUtilApache से आयात और एप्लिकेशन आपके लिए उपयोगी तरीकों का एक बहुत जोड़ने के लिए, capitalize की तरह कर सकते हैं जैसा कि यहाँ दिखाया:

How to capitalize the first character of each word in a string

47
android:inputType="textCapSentences" 

या

TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 

यह पहला पत्र सीएपी होगा।

या

compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app) 

tv.setText(StringUtils.capitalize(myString.toLowerCase().trim())); 
+1

इससे बहुत मदद मिली है! –

+49

यह टेक्स्ट व्यू पर लागू नहीं होता है, लेकिन केवल संपादन टेक्स्ट पर; फिर भी, यह कीबोर्ड से दर्ज टेक्स्ट पर लागू होता है, न कि setText() के साथ लोड किया गया टेक्स्ट। अधिक विशिष्ट होने के लिए, यह कुंजीपटल में कैप्स चालू करता है, और उपयोगकर्ता उसकी इच्छानुसार इसे ओवरराइड कर सकता है। –

4

आप Apache Commons Lang Gradle में तरह compile 'org.apache.commons:commons-lang3:3.4'

जोड़ सकते हैं और उपयोग करने WordUtils.capitalizeFully(name)

1

कृपया एक कस्टम TextView बनाने और उपयोग यह:

public class CustomTextView extends TextView { 

    public CapitalizedTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void setText(CharSequence text, BufferType type) { 
     if (text.length() > 0) { 
      text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length()); 
     } 
     super.setText(text, type); 
    } 
} 
2

बस EditText एक्सएमएल पर इस विशेषता जोड़ें: android:inputType="textCapWords" यह सब शब्द डाला

+0

यह एंड्रॉइड स्टूडियो में एक्सएमएल फ़ाइल के पूर्वावलोकन में क्यों काम नहीं करता है। – toobsco42

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