2012-07-18 9 views
7

मुझे प्रारूप और एकाधिक मानों के साथ टेक्स्ट व्यू में टेक्स्ट सेट करने में समस्या हो रही है।एंड्रॉइड सेटटेक्स्ट/आरस्ट्रिंग/वैल्यू

holder.car.setText(R.string.mycar + lm.getCarName() + R.string.year + lm.getYear()); 
इस

मुझे दे रहा है "2,143,545 Camero 2,143,213 1977"

मैं कुछ अन्य वेब

holder.car.setText(getString(R.string.mycar) + lm.getCarName() + getString(R.string.year) + lm.getYear()); << not work, getString undefine>> 

मैं भी String.valueOf(R.string.mycar); getResources().getText(R.String.mycar) की कोशिश की से "समाधान" की कोशिश की है, अभी भी यह काम नहीं किया ।

यह महान अगर कोई मेरी मदद कर सकते हो सकता है, धन्यवाद

+0

क्या अर्थ है "अभी भी काम नहीं" करता है? आप क्या उम्मीद करते हैं? – Blackbelt

+0

ऐसा इसलिए है क्योंकि 'R.string.mycar' एक 'int' है जो संसाधन को संदर्भित करता है। यह वास्तविक संसाधन नहीं है। @ user1417127 का जवाब अच्छा दिखता है। यह आपके लिए वास्तविक स्ट्रिंग संसाधन प्राप्त करता है –

+0

संदर्भ का उपयोग करें .getResources.getString (R.string.xyx)। – Kamal

उत्तर

14

प्रयास करें इस

holder.car.setText(getResources().getString(R.string.mycar));

+0

मुझे स्ट्रिंग मान के लिए "झूठा" मिल रहा है ... –

+0

आपका क्या मतलब है "झूठा" ??? 'संदर्भ' के बजाय – user1417127

2

आपको पहले अपने संसाधनों को पुनः प्राप्त करने के लिए है, और कॉल medthod GetString (पूर्णांक), नहीं gettext , क्या आपने रखा है

इसलिए, यह होना चाहिए:

getResources().getString(R.String.mycar); 
2

इस प्रयास करें। आप Activity के विस्तार के बिना कक्षा में स्ट्रिंग ला रहे हैं तो .. अपने Context

holder.car.setText(context.getResources().getString(R.string.mycar)); 

आप का विस्तार कर रहे हैं Activity

holder.car.setText(yourActivity.this.getResources().getString(R.string.mycar)); 

आशा का उपयोग कर इस मदद करता है जाओ

+0

क्या हम 'getActivit() 'लिख सकते हैं? क्या कोई समस्या है – mehmet

+0

@mehmet यह आपकी आवश्यकता पर निर्भर करता है। [यहां दस्तावेज़] पढ़ें [http://developer.android.com/reference/android/app/Fragment.html#getActivity()) – Praveenkumar

3

R.string.mycar और R.string.year संसाधनों के लिए केवल आईडी हैं। इस कारण से आप संख्याएं प्राप्त करते हैं (आईडी संख्यात्मक हैं)।

संसाधनों आप इस निर्माण उपयोग करने की आवश्यकता से स्ट्रिंग प्राप्त करने के लिए:

String myCar = getResources().getString(R.string.mycar); 

और अब mycar चर स्ट्रिंग आप mycar नाम के तहत strings.xml फ़ाइल में डाल दिया है।

विधि प्राप्त करें स्रोत() संदर्भ से संबंधित है। आप एक गतिविधि के बाहर अपने कोड चलाते हैं, तो इस तरह स्ट्रिंग प्राप्त करने के लिए, संदर्भ उदाहरण का उपयोग करें:

String myCar = context.getResources().getString(R.string.mycar); 
0

आर वर्ग अपने ressources की ओर इशारा की तरह होता है, तो आप सीधे, उनका उपयोग नहीं कर सकते हैं उपयोग getResources () .getString(), जैसा कि अन्य कहते हैं।

9

मुझे लगता है कि आप अपनी स्ट्रिंग में पैरामीटर का उपयोग करने का प्रयास कर रहे हैं। आप अपने TextView अपने स्ट्रिंग से सिर्फ एक स्ट्रिंग सेट करना चाहते हैं 1977

1

:

इस प्रयास करें:

<string name="mycar">Car: %1$s Year: %2$s</string> 

String mycar = getString(R.string.mycar); 
mycar = String.format(mycar, lm.getCarName(), lm.getYear()); 

आप मिलना चाहिए:

कार: केमेरो वर्ष।xml फ़ाइल,

mytextview.setText(R.String.mycar); 

आप कुछ तार या पूर्णांकों के संयोजन के साथ अपने TextView सेट करना चाहते हैं, (पहला तरीका की तुलना में बेहतर)

int number=5; 

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar)); 
+0

यह मेरे लिए काम करता है। धन्यवाद। –