我将这个数组放入我的资源文件中:
<array name="xml_data">
<item>@xml/data1</item>
<item>@xml/data2</item>
<item>@xml/data3</item>
<item>@xml/data4</item>
</array>
通常,它与普通数组没有什么不同,但是在获取代码时,这不起作用......
final Resources res = getResources();
int[] xmlList = res.getIntArray(R.array.xml_data);
Log.i(TAG, "Data found: "+ xmlList.length);
for (int i = 0; i < xmlList.length; i++) {
Log.i(TAG, "Extract xml id="+ xmlList[i].);
}
以下是logcat中获得的输出:
Data found: 4
Extract xml id=0
Extract xml id=0
Extract xml id=0
Extract xml id=0
你能帮我这个吗?
感谢。
答案 0 :(得分:0)
为方便起见,我们举个例子:
我在示例xml文件中有一个简单的'string'数组(不是int)。让我们称之为array.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="doing">
<item>1</item>
<item>2/item>
<item>3/item>
<item>3</item>
</string-array>
</resources>
现在在我的Java文件中,我在我的OnCreate()函数中调用了它,它起作用了:
String[] xmlList = getResources().getStringArray(R.array.doing);
int first = Integer.parseInt(xmlList[0]);
Log.d("test", "1st string is: " + first);
P.S:我没有测试过代码,但我希望你有逻辑。祝一切顺利。希望能帮助到你。
答案 1 :(得分:0)
像这样使用你的TypedArray:
TypedArray mTypedArray = getResources().getTypedArray(R.array.xml_data);
然后,检索您的资源ID,如下所示:
int id = mTypedArray.getResourceId(position, defaultResourceId);
当我使用它时,它是一个字符串ID数组,所以我跟着它:
getString(id)