2012-09-28 52 views
1

我有這個陣列到我的資源文件:如何從android資源獲取xml文件的數組?

<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].); 
} 

這裏

Data found: 4 
Extract xml id=0 
Extract xml id=0 
Extract xml id=0 
Extract xml id=0 

你能幫我一下:在logcat中獲得的輸出?

謝謝。

回答

0

爲了您的方便,您舉個例子:

我做了一個簡單的「字符串」數組(不是int)在一個示例XML文件。讓我們把它叫做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); 

PS:我還沒有測試的代碼但我希望你有邏輯。祝一切順利。希望能幫助到你。

0

使用您的TypedArray這樣的:

​​

然後,檢索您的資源ID是這樣的:

int id = mTypedArray.getResourceId(position, defaultResourceId);

當我用這個,這是字符串ID數組,所以我跟着這個:

getString(id)