मैं निम्नलिखित तरीके से सेट टेक्स्ट () का उपयोग करके पाठ सेट कर रहा हूं ।
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
उस पहले में एक सरल उपयोग है और दूसरा एक पाठ स्वरूपण के साथ पाठ सेट कर रहा है।
एंड्रॉइड स्टूडियो इतना दिलचस्प है, मैंने मेनू का उपयोग किया Analyze -> Code Cleanup
और मुझे दो लाइनों के ऊपर सुझाव मिला जैसे।
सेटटेक्स्ट के साथ प्रदर्शित पाठ को न बदलें। प्लेसहोल्डर्स के साथ संसाधन स्ट्रिंग का उपयोग करें। कम ... (Ctrl + F1)
TextView # setText पर कॉल करते समय:
- कभी भी नंबर # toString () को फॉर्मेट नंबर पर न करें; यह अंश विभाजकों और स्थानीय-विशिष्ट अंकों को ठीक से नहीं संभालेगा। इसके बजाय उचित प्रारूप विनिर्देशों (% d या% f) के साथ स्ट्रिंग # प्रारूप का उपयोग करने पर विचार करें।
- पाठ प्रदर्शित करने के लिए एक स्ट्रिंग शाब्दिक (जैसे "हैलो") पास न करें। हार्डकोड टेक्स्ट को अन्य भाषाओं में ठीक से अनुवाद नहीं किया जा सकता है। इसके बजाय एंड्रॉइड संसाधन स्ट्रिंग्स का उपयोग करने पर विचार करें।
- पाठ विखंडन करके संदेशों का निर्माण न करें। ऐसे संदेशों का ठीक से अनुवाद नहीं किया जा सकता है।
इसके लिए मैं क्या कर सकता हूं? कोई भी यह समझाने में मदद कर सकता है कि बात क्या है और मुझे क्या करना चाहिए?
NPE
अगर name
हैNULL
name
नहीं है । NULL
setText()
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
और अपने जावा कोड में आप कुछ इस तरह से करते हैं: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(आप xml फ़ाइल में स्वरूपण कर सकते हैं: [ developer.android.com/guide/topics/resources/…
String
में उत्तीर्ण होना चाहिएsetText()
। Ex:setText(name)
लगातारsetText("" + name)
। क्योंकि यदि आप पाठ को संक्षिप्त करते हैं, तो इसका अनुवाद नहीं किया जाएगा जैसे कि आप संदेश सूचना के रूप में हार्डकोड पाठ का उपयोग करते हैं