我有很多语言特定的资源。在我的Android应用程序中,有一个地方需要获取资源值并将其翻译为相应的ID。该值不一定在当前语言(en/de/...)的语言特定文件中。它可能在其中的某个地方……而且它是唯一的。
阅读文档和此线程 "如何通过已知的资源名称获取资源ID?" 后,我认为
这段代码是活动的一部分,我使用的是Android 2.2。
Android是否可能不考虑所有资源文件,只搜索当前语言特定的文件?
例如(当前语言为“de”):
阅读文档和此线程 "如何通过已知的资源名称获取资源ID?" 后,我认为
getIdentifier(String name, String defType, String defPackage)
是正确的方法,但我无法让它工作。结果总是“0”。这段代码是活动的一部分,我使用的是Android 2.2。
Android是否可能不考虑所有资源文件,只搜索当前语言特定的文件?
例如(当前语言为“de”):
File: values-en/strings.xml
<resources>
<string name="txt_afirsttext">A first text</string>
<string name="txt_asecondtext">A second text</string>
</resources>
File: values-de/strings.xml
<resources>
<string name="txt_afirsttext">Ein erster Text</string>
<string name="txt_asecondtext">Ein zweiter Text</string>
</resources>
// Now I want to find the ID to this "en" text ...
String testValue = "A second text";
int i = this.getResources().getIdentifier(testValue, "strings", this.getPackageName());
// ... and translate it to the actual "de" language
String translatedValue = this.getResources().getString(i);
为了明确事情,我不想将字符串资源误用为数据库。这只是在非常罕见的情况下出现的一部分。