gpt4 book ai didi

Android:如何使用名称从资源中获取字符串?

转载 作者:行者123 更新时间:2023-12-01 16:34:47 24 4
gpt4 key购买 nike

我希望为 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>

现在我需要在我的应用程序中动态检索这些值:

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

为什么它在我的情况下不起作用?

最佳答案

您引用的链接似乎适用于运行时生成的字符串。 strings.xml 中的字符串不是在运行时创建的。您可以通过

获取它们
String mystring = getResources().getString(R.string.mystring);

getResources()Context 类的方法。如果您位于 ActivityService(扩展了 Context)中,您可以像此代码 fragment 中那样使用它。

另外请注意,整个语言依赖性可以由 android 框架处理。只需为每种语言创建不同的文件夹即可。如果英语是您的默认语言,只需将英语字符串放入 res/values/strings.xml 中即可。然后创建一个新文件夹 values-ru 并将同名的俄语字符串放入 res/values-ru/strings.xml 中。从这一点开始,当您调用 getString() 或通过 @string/mystring 引用 XML 中的字符串时,Android 会根据您的设备区域设置选择正确的字符串。res/values/strings.xml 中的值是后备值,如果您没有覆盖用户区域设置的文件夹,则该值将用作默认值。

参见LocalizationProviding Resources了解更多信息。

关于Android:如何使用名称从资源中获取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61981037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com