Android: Как получить строку из ресурсов, используя ее имя? - PullRequest
495 голосов
/ 21 сентября 2011

Я хотел бы иметь 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.

Почему это не работает в моем случае?

Ответы [ 12 ]

1 голос
/ 14 марта 2018

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

простой способ

0 голосов
/ 03 января 2019

К сейфу следует добавить: . MContext.getResources () GetString (R.string.your_string);

mContext может быть: контекст в onAttach () Fragment или this of Activity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...