Array Name passing variable

时间:2017-12-18 07:04:18

标签: android

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);

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

A simple util method in your activity or service:

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

Usage:

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