Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Loading Integer Array from xml

Tags:

android

I have an integer array in an xml file as follows

<integer-array name="myArray">
    <item>@drawable/pic1</item>
    <item>@drawable/pic2</item>
    <item>@drawable/pic3</item>
    <item>@drawable/pic4</item>
</integer-array>

In the code, I am trying to load this array

int[] picArray = getResources().getIntArray(R.array.myArray);

The expected result is

R.drawable.pic1, R.drawable.pic2,R.drawable.pic3

but instead it is coming with an array with all values as zero

Can anyone tell me what is wrong?

like image 922
GSree Avatar asked Dec 14 '10 22:12

GSree


1 Answers

Found this solution:

TypedArray ar = context.getResources().obtainTypedArray(R.array.myArray);
int len = ar.length();

int[] picArray = new int[len];

for (int i = 0; i < len; i++)
    picArray[i] = ar.getResourceId(i, 0);

ar.recycle();

// Do stuff with resolved reference array, resIds[]...
for (int i = 0; i < len; i++)
    Log.v (TAG, "Res Id " + i + " is " + Integer.toHexString(picArray[i]));

And resources xml file could be:

<resources>
    <integer-array name="myArray">
        <item>@drawable/pic1</item>
        <item>@drawable/pic2</item>
        <item>@drawable/pic3</item>
        <item>@drawable/pic4</item>
    </integer-array>
</resources>
like image 136
Mixaz Avatar answered Sep 27 '22 18:09

Mixaz