Android:以编程方式检索资源字符串

时间:2018-12-25 16:02:47

标签: java android

我有一个资源文件,看起来像:

<string name="snapshot_type_1">Deletion</string>
<string name="snapshot_type_2">Insertion</string>
<string name="snapshot_type_3">Edition</string>

我想要的是能够基于在标识类型的数字上粘贴的方式来恢复字符串,方法是:

"snapshot_type_" + someVariableValue

当然,方法resources.getString(R.string.snapshot_type_1)不起作用,因为它接收到整数。

谢谢!

1 个答案:

答案 0 :(得分:3)

您将获得字符串资源的ID,如下所示:

int id = getResources().getIdentifier("snapshot_type_" + someVariableValue, "string", getPackageName());

,然后是资源值:

String value = getResources().getString(id);

如果您的代码不在活动类中,则可能需要向ContextgetResources()提供有效的getPackageName()
但是在这种情况下,我认为使用字符串数组会更好:

<string-array name="snapshot_types">
    <item>Deletion</item>
    <item>Insertion</item>
    <item>Edition</item>
</string-array>

并像这样获得它:

String[] snapshotTypes = getResources().getStringArray(R.array.snapshot_types);