2017-12-18 84 views
0

讓說我有2個陣列陣列名稱傳遞變量

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

這是做工精細。但我不希望與其他線上方再次使用該代碼

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

如何獲得下面的線工作,如果 我宣佈XXX爲數組名變量

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

回答

2

你可以:

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

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

而不是傳遞只是資源的名稱,傳遞整個ID(作爲整數)。

如果你仍然想通過名稱作爲字符串,您可以:https://stackoverflow.com/a/3476447/9038584

+0

我明白你的意思是把ID作爲整數傳遞。 但是,xxx變量是從其他方法聲明的字符串。 'int xxx = R.array.Array1; //改爲整數' 這不起作用 – Anthony

+0

我仍然想使用字符串名稱傳遞值 – Anthony

+0

我已更新我的答案。這個問題已經存在,請參考我的第二個選項答案的鏈接。 –

2

一個簡單的util的方法,在你的活動或服務:

第二個選項的

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

參考

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

用法:

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