将资源标识符放入xml数组中

时间:2015-06-26 22:36:10

标签: android xml

在第一种情况下,如何将R.string资源标识符编号放入整数数组中。

在第二种情况下,我如何将与R.integer资源标识符关联的数字放入数组中。

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

    ....

</integer-array>

使用android studio,如果这有任何区别。

1 个答案:

答案 0 :(得分:0)

如果您只想加载资源标识符,并且如果要加载刚刚解析的整数,则将一个xml加载为类型数组似乎是一个答案。您不必更改xml中的数组类型,您可以将其保留为通用&#34;数组&#34;正如我在测试中所做的那样

<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