У меня есть файл ресурсов, который выглядит так:
<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) не работает, потому что он получает целое число.
Спасибо!




Вы получаете идентификатор строкового ресурса следующим образом:
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);