Java Android动态获取类型Darray
我试图根据一些数据动态设置要使用的资源(数组)。例如,我为每个级别设置了数组,就像上面的一样。在上面的示例中,我想使用intJava Android动态获取类型Darray,java,android,Java,Android,我试图根据一些数据动态设置要使用的资源(数组)。例如,我为每个级别设置了数组,就像上面的一样。在上面的示例中,我想使用intcurrentLevel的值,而不是使用obtainTypedArray()中的资源idR.array.level\u 2 因此,某种方式可以做一些事情,比如: obtainTypedArray(“R.array.level\uux”+level) 有什么想法吗?谢谢 应该使用Context.getResources().getIdentifier()方法可以在任何活动中通
currentLevel
的值,而不是使用obtainTypedArray()
中的资源idR.array.level\u 2
因此,某种方式可以做一些事情,比如:
obtainTypedArray(“R.array.level\uux”+level)
有什么想法吗?谢谢 应该使用
Context.getResources().getIdentifier()下面的代码>方法可以在任何活动中通过getStrArrWithId(“level_”+level,getApplicationContext())调用代码>
<?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);
public String [] getStrArrWithId (String id, Context context) {
int arrId = context.getResources().getIdentifier(id, "array", context.getPackageName());
String[] strArr = context.getResources().getStringArray(arrId);
return strArr;
}