我需要动态访问xml中的资源。Android - 动态访问xml资源
res=getResources();
plc=res.obtainTypedArray(R.array.id1);
我愿做一个循环=>变化ID1到ID2,ID3,...,ID1000和与各阵列项循环工作。我可以用单个数组来完成,但不能跳转到另一个数组。任何建议我怎么能做到这一点? ObtainTypedArray仅将整数作为参数。
谢谢!
我需要动态访问xml中的资源。Android - 动态访问xml资源
res=getResources();
plc=res.obtainTypedArray(R.array.id1);
我愿做一个循环=>变化ID1到ID2,ID3,...,ID1000和与各阵列项循环工作。我可以用单个数组来完成,但不能跳转到另一个数组。任何建议我怎么能做到这一点? ObtainTypedArray仅将整数作为参数。
谢谢!
下面是我的从XML调用TypedArray在代码的问题的精确解:在XML
1)创建数组索引数据数组
<array name="arrind">
<item>@array/id1</item>
<item>@array/id2</item>
<item>@array/id3</item>
</array>
<string-array name="id1">
<item>...</item>
<item>....</item>
<item>...</item>
</string-array>
<string-array name="id2">
...
</string-array>
...
2)调出一个在代码rray
Resources res=getResources();
TypedArray index=res.obtainTypedArray(R.array.arrind); //call the index array
for (int i = 0; i < n; i++) {
int id=index.getResourceId(i,0); //get the index
if (id != 0){
String[] handle=new String[n];
handle=res.getStringArray(id); //use the index to get the actual array
String a=handle[0]; //Access items in your XML array
String b=handle[1];
c=...
}
}
感谢您的所有有用的意见,Idecided不使用外地的做法,但我相信,我会到那里后,我获得更多的经验!你可以使这个解决方案更好地使用二维数组,但我没有用它在我的代码中...
它有点复杂,难以阅读,但如果它的工作原理,它的工作原理 – slayton 2012-02-29 15:19:05
评论中的答案告诉你如何做到这一点。这里有一个例子:
让我们假设你有一个名为整数: ID1,ID2,ID3,ID4,......,ID10你可以访问它们,并将它们存储到一个数组与此:
int array[] = {1,2,3,4,5,6,7,8,9,10};
int value[10];
for (i=0; i<10; i++){
String fieldName = "id" + Integer.toString(array[i]);
Field field = R.id.class.getField(fieldName);
value[i] = field.getInt(null);
}
谢谢,辉煌!我也发现这个帖子非常有用:http://stackoverflow.com/questions/4326037/android-resource-array-of-arrays ... – Whitewall 2012-02-29 12:23:59
这应该可以帮助你http://stackoverflow.com/q/5406108/839527 – JProgrammer 2012-02-29 00:22:07
谢谢你,JProgrammer。我已阅读过多次提出的帖子,但无法看到它对我有何用处。我刚刚开始使用java,之前我已经使用了许多其他语言。你能否多加一点你对贫穷小我的智慧? ;-)提前谢谢 – Whitewall 2012-02-29 00:49:55