Android - 如何从资源中获取名称?

时间:2013-10-06 00:04:37

标签: android

我的意思是名字,而不是它的价值,例如:

<resources>
    <string name="magical_value_1">Lapin</string><br>
    <string name="magical_value_2">Poulet</string><br>
    <string name="magical_value_3">Saucisse</string><br>
</resources>

如果我使用String value1 = getResources().getString(R.string.magical_value_1); 结果它将是Lapin,但我需要一种方法来获得变量中的"magical_value_1"(不是Lapin)。我需要这样做是因为语言,我的应用程序中有很多语言,它们的值会发生变化,但名称(magical_value_1)是唯一剩下的东西(无论语言如何)。感谢

3 个答案:

答案 0 :(得分:1)

您应该考虑查看i18n android开发者文档。

答案 1 :(得分:1)

如果您尝试使您的应用支持多种语言。这是一些简单的样本。

假设您正在努力让您的应用支持法国和英语。你需要为英语创建 res / values / strings.xml (准确地说,其他语言然后是法国),为法国创建 res / values-fr / strings.xml 。 / p>

内部res / values-fr / string.xml

<resources>
    <string name="magical_value_1">Lapin</string><br>
    <string name="magical_value_2">Poulet</string><br>
    <string name="magical_value_3">Saucisse</string><br>
</resources>

在res / values / string.xml里面

<resources>
    <string name="magical_value_1">Rabbit</string><br>
    <string name="magical_value_2">Chicken</string><br>
    <string name="magical_value_3">Sausage</string><br>
</resources>

通过在设置上更改设备语言来测试它。

答案 2 :(得分:0)

请参阅this answer

TL; DNR:

getResources().getResourceEntryName(int resid);