我想在UI中使用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>
Run Code Online (Sandbox Code Playgroud)
现在我需要在我的应用中动态检索这些值:
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);
Run Code Online (Sandbox Code Playgroud)
我的问题是i = 0.
为什么它在我的情况下不起作用?
我目前正在使用databinding和MVVM architectureAndroid.在ViewModel中获取字符串资源的最佳方法是什么.
我没有使用新AndroidViewModel组件,eventbus或RxJava
我正在经历接触的方式,其中Activity将负责提供资源.但最近我在这个答案中找到了一个类似的问题,其中使用应用程序上下文的单个类提供了所有资源.
哪种方法更好?或者还有其他我可以尝试的东西吗?