का प्रतिनिधित्व करने के लिए एक चर का उपयोग करके आर। स्ट्रिंग की सामग्री तक पहुंचने में मेरे पास कुछ स्ट्रिंग हैं जिन्हें मुझे अनुवाद और प्रदर्शित करने की आवश्यकता है। वे तार चर में हैं। मेरे पास strings.xml फ़ाइल में अनुवाद है।संसाधन नाम
मैं स्ट्रिंग के "अनुवादित संस्करण" को प्रदर्शित करना चाहता हूं। उदाहरण के लिए, एक गतिविधि के अंदर:
String name = "Water";
TextView nameDisplay = new TextView(this).
nameDisplay.setText(name);
तार में दाखिल मैं परिभाषा
<string name="Water">French word for Water</string>
है, तो मैं कुछ इस तरह इस्तेमाल किया:
nameDisplay.setText(R.string.KnownName);
यह काम करेगा। लेकिन मेरे मामले में, नाम एक चर में संग्रहीत है, इसलिए मुझे नहीं पता कि setText विधि को ठीक से कार्य करने के लिए क्या करना है।
मेरे वर्तमान workaround
String translation = ""
if(name == "Water") {
translation = getString(R.string.Water);
}
else {
...
}
nameDisplay.setText(translation);
है ... लेकिन यह बहुत अच्छी तरह से बड़े पैमाने नहीं है।
कोई सुझाव?
क्या मुझे चर में अनुवादित संस्करण संग्रहीत करना चाहिए? संदर्भ पैरामीटर (या किसी अन्य संदर्भ उदाहरण) के रूप में एक गतिविधि में
public static int getStringIdentifier(Context context, String name) {
return context.getResources().getIdentifier(name, "string", context.getPackageName());
}
पास:
हैलो। आपके कमेंट के लिए धन्यवाद। यह काम करता हैं। प्रदर्शन के संभावित नुकसान के बारे में चेतावनी के लिए भी धन्यवाद। – MyNameIsZero