2011-09-27 23 views
7

मेरे पास एक टेक्स्ट व्यू है। मैं हर शब्द में पहला अक्षर कैपिटल करने की कोशिश कर रहा हूं।एंड्रॉइड: काम नहीं कर रहा पूंजीकरण

TextView titleView = (TextView) findViewById(R.id.textView1); 
    titleView.setText(section.replace("_", " ")); 

मैं गतिशील पाठ जोड़ सकते हैं और यह शब्द कैपिटल की उम्मीद नहीं कर सकते:

<TextView 
      android:text="TextView" 
      android:id="@+id/textView1" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_alignParentRight="true" 
      android:textSize="30dip" 
      android:textStyle="bold" 
      android:layout_marginRight="5dip" 
      android:ellipsize="end" 
      android:capitalize="words"> 
     </TextView> 

यहाँ मैं पाठ कैसे जोड़ रहा है:

यहाँ TextView है? android:capitalize के साथ एक और विशेषता हस्तक्षेप कर रही है? android:capitalize टूट गया है?

आपके उत्तरों के लिए धन्यवाद।

उत्तर

13

capitalize मूल रूप से केवल KeyListener है जिसे आप XML में सेट कर सकते हैं, इसलिए यह केवल उपयोगकर्ता द्वारा टेक्स्ट इनपुट पर लागू होता है। As the documentation states (जोर मेरा):

तो सेट, निर्दिष्ट करता है इस TextView एक टेक्स्ट इनपुट विधि है और स्वचालित रूप से क्या उपयोगकर्ता प्रकार भुनाने चाहिए।

how to capitalize the first letter of every word in Java पर एक संबंधित प्रश्न है जिसमें कुछ उपयोगी उत्तर हैं।

+0

वाह, लगभग सटीक एक ही जवाब ... –

+0

धन्यवाद, मैंने आपको सही उत्तर के रूप में चिह्नित किया है। – emachine

1

यह एक देर से जवाब है, लेकिन मैं किसी को मदद कर सकता है लगता है ...

आप जावा कोड में गतिशील पाठ capitilizing के साथ आराम कर रहे हैं तो आप उपयोग कर सकते हैं:

textView.setText(text.toUpperCase()); 
-1

एंड्रॉयड: भुनाने आईसीएस पर हटाई गई है, इसलिए मुझे लगता है कि यह (String.toUpperCase() साथ यानी) कोड में यह करने के लिए बेहतर होना चाहिए

एक और कोशिश हो सकता है

+०१२३५१६४१०६
android:inputType="textCapWords" 

लेकिन मुझे लगता है कि इसे एक संपादन टेक्स्ट को काम करने की आवश्यकता होगी।

मुझे नहीं पता कि यह आपके कोड का कारण है, आप किस संस्करण को लक्षित कर रहे हैं?

13

आप एपीआई स्तर 14 और इसके बाद के संस्करण को लक्षित कर रहे हैं, तो आप का उपयोग करना चाहिए

एंड्रॉयड: textAllCaps = "true"

अन्यथा, आप इस व्यवहार अपने आप को लागू करने के लिए होगा।

+0

धन्यवाद। अब मुझे पता है कि मैं एपीआई स्तर 8 पर काम करने के लिए क्यों नहीं मिल सकता :) :) –

0

@ शाइन का जवाब सही है मुझे नहीं पता कि यह क्यों मतदान किया गया था। एंड्रॉयड: दुर्भाग्य से TextView डॉक्स इस इंगित करने के लिए असफल भुनाने एपीआई 3. में पदावनत किया गया था, सबूत R.attr में burried है:

R.attr

एंड्रॉयड स्टूडियो भी आपको सूचित करना है कि इस विशेषता को हटा दिया गया है विफल रहता है। एक और 30 मिनट मैं कभी वापस नहीं आऊंगा, धन्यवाद Google!

0

android:capitalize अब बहिष्कृत है।

android:capitalize="words" का उपयोग करने के बजाय, आपको android:inputType="textCapWords" का उपयोग करने पर विचार करना चाहिए।

आपकी ज़रूरतों के आधार पर, आप android:inputType="textCapWords|textPersonName" जैसे कई मान भी उपयोग कर सकते हैं।

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