<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="level_2">
<item name="first">some value</item>
<item name="second">some value</item>
<item name="third">some value</item>
</array>
</resources>
-
int currentLevel = 2;
TypedArray testArray = getResources().obtainTypedArray(R.array.level_2);
int firstValue = testArray.getInt(0,0);
我试图根据某些数据动态设置要使用的资源(数组)。例如,我有像上面那样的每个级别的数组。我没有在R.array.level_2
中使用资源ID obtainTypedArray()
,而是希望在上面的示例中使用int currentLevel
的值。
所以,做某些事情的方式如下:
obtainTypedArray("R.array.level_"+level)
有什么想法吗?谢谢!
答案 0 :(得分:2)
你应该使用Context.getResources().getIdentifier();
方法,如下所示,可以通过getStrArrWithId("level_" + level, getApplicationContext());
public String [] getStrArrWithId (String id, Context context) {
int arrId = context.getResources().getIdentifier(id, "array", context.getPackageName());
String[] strArr = context.getResources().getStringArray(arrId);
return strArr;
}