android एंड्रॉइड: मैं अपने नाम का उपयोग कर संसाधनों से स्ट्रिंग कैसे प्राप्त करूं?




5 Answers

मेरी भी यही समस्या है। लेकिन नीचे यह कोड मेरे लिए काम करता है: सत्यापित करें कि आपका पैकेज नाम सही है या नहीं। आपको अपने एंड्रॉइड एप्लिकेशन के रूट पैकेज का संदर्भ लेना होगा।

private String getStringResourceByName(String aString) {
      String packageName = getPackageName();
      int resId = getResources().getIdentifier(aString, "string", packageName);
      return getString(resId);
    }
android string resources

मैं यूआई के लिए 2 भाषाओं और उनके संसाधन फ़ाइल res\values\strings.xml में उनके लिए अलग स्ट्रिंग मान रखना चाहता हूं:

<string name="tab_Books_en">Books</string>
<string name="tab_Quotes_en">Quotes</string>
<string name="tab_Questions_en">Questions</string>
<string name="tab_Notes_en">Notes</string>
<string name="tab_Bookmarks_en">Bookmarks</string>

<string name="tab_Books_ru">Книги</string>
<string name="tab_Quotes_ru">Цитаты</string>
<string name="tab_Questions_ru">Вопросы</string>
<string name="tab_Notes_ru">Заметки</string>
<string name="tab_Bookmarks_ru">Закладки</string>

अब मुझे अपने ऐप में इन मानों को गतिशील रूप से पुनर्प्राप्त करने की आवश्यकता है:

spec.setContent(R.id.tabPage1);
String pack = getPackageName();
String id = "tab_Books_" + Central.lang;
int i = Central.Res.getIdentifier(id, "string", pack);
String str = Central.Res.getString(i);

मेरी समस्या यह है कि i = 0

यह मेरे मामले में क्यों काम नहीं करता है?




getResources().getString(getResources().getIdentifier("propertyName", "string", getPackageName()))



गतिविधि के भीतर getString() फ़ंक्शन का उपयोग करना आसान तरीका है।

String myString = getString(R.string.mystring);

संदर्भ: http://developer.android.com/guide/topics/resources/string-resource.html

मुझे लगता है कि यह सुविधा हाल के एंड्रॉइड संस्करण में जोड़ा गया है, जो इतिहास को जानता है, वह इस पर टिप्पणी कर सकता है।




पूर्वनिर्धारित एंड्रॉइड स्ट्रिंग्स का एक सेट भी है जैसे "ओके", "रद्द करें" और कई अन्य - इसलिए आपको सभी को घोषित करने की आवश्यकता नहीं है। वे बस द्वारा उपलब्ध हैं:

getString(android.R.string.ok)

(इस मामले में, "ठीक है" स्ट्रिंग)। बीटीडब्ल्यू अन्य एंड्रॉइड संसाधन भी उपलब्ध हैं जैसे कि उदाहरण छवियों इत्यादि।




स्ट्रिंग myString = getString (R.string.mystring);

आसान तरीका




Related