2015-06-26 48 views
0

在第一種情況下,如何把所述R.string資源標識符號碼轉換成一個整數數組。把資源標識符轉換成XML陣列

在第二種情況下,如何把代替與R.integer資源標識符到陣列相關聯的數字。

<integer-array 
    name="integer_array_name"> 
    <item>@string/nav_heading</item> 
    <item>@integer/viewtype_heading</item> 

    .... 

</integer-array> 

如果這有什麼區別,請使用android studio。

+0

我貼不談,我以前當我使用eclipse我可以l本答案OAD使用RESOURCEID爲對象的標籤的「?」運算符而不是「@」符號。 Android的工作室是突出任何使用運營商的紅色,並裝入0值代替。 Android Studio中是否有替代品? – NameSpace

回答

0

看來一個答案是,如果要加載只是資源標識符來加載XML作爲一個類型的數組,如果要加載只是解決整數加載它作爲一個整數數組。你不必改變陣列的類型在你的XML,你可以把它作爲一個通用的「陣列」,因爲我在測試中所做的

<array 
    name="testArray"> 
    <item>@string/nav_vault_heading</item> 
    <item>@integer/viewtype_heading</item> 
</array> 

//測試1

int[] intArray= getActivity().getResources().getIntArray(R.array.testArray); 
    Log.d("MyInts", "IntArray = " + Arrays.toString(intArray)); 

    06-26 16:31:02.826 12952-12952/... D/MyInts﹕ IntArray = [0, 32] 

// Test2的

由於信用:http://www.anddev.org/xml_integer_array_resource_references_getintarray-t9268.html

TypedArray typedArray= getActivity().getResources().obtainTypedArray(R.array.testArray); 

    for(int i=0; i<typedArray.length(); i++){ 
     int id = typedArray.getResourceId(i, 0); 
     Log.d("MyInts", "MyInts: " + id); 
    } 


06-26 16:31:02.826 12952-12952/... D/MyInts﹕ MyInts: 2131165274 
06-26 16:31:02.826 12952-12952/... D/MyInts﹕ MyInts: 2131427334