Anthony
Anthony

Reputation: 61

Array Name passing variable

Let say I have 2 arrays

Array1 = 1,2,3,4,5
Array2 = a,b,c,d,e
String[] array = getResources().getStringArray(R.array.Array1);

That's work fine. But I don't want to use the code above again with another line

String[] array = getResources().getStringArray(R.array.Array2);

How do I get the below lines to work if I had declared xxx as variable for array name

String xxx = Array1;
String[] array = getResources().getStringArray(R.array.xxx);

Upvotes: 0

Views: 127

Answers (2)

Tenten Ponce
Tenten Ponce

Reputation: 2506

You can:

int xxx = R.array.Array1; //change to integer

String[] array = getResources().getStringArray(xxx); //pass the whole id

Instead of passing just the name of the resource, pass the whole ID (as integer).

If you still want to pass the name as string, you can:

String xxx = "Array1";
int resourceId = getResources().getIdentifier(xxx, "array", getPackageName());
String[] array = getResources().getStringArray(resourceId);

reference of the second option: https://stackoverflow.com/a/3476447/9038584

Upvotes: 2

frogatto
frogatto

Reputation: 29285

A simple util method in your activity or service:

String[] getArray(int id) {
    return getResources().getStringArray(id);
}

Usage:

String[] array1 = getArray(R.array.array1);

Upvotes: 2

Related Questions