我有一个资源文件,看起来像:
<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)不起作用,因为它接收到整数。
谢谢!
答案 0 :(得分:3)
您将获得字符串资源的ID,如下所示:
int id = getResources().getIdentifier("snapshot_type_" + someVariableValue, "string", getPackageName());
,然后是资源值:
String value = getResources().getString(id);
如果您的代码不在活动类中,则可能需要向Context
和getResources()
提供有效的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);