我有一个Android应用程序的XML资源文件,其中包含许多字符串数组,每个字符串数组都命名为#,其中#是一个数字(目前是0-100)。即word0,word1等
我使用Random来选择一个随机数,然后使用switch语句根据数字选择正确的数组。所以,如果random.nextInt返回4,我就会返回R.array.word4
这是我的代码:
private String[] getWordArray(int i) { //i is a random number
Resources res = getResources();
String[] x = new String[8];
switch(i){
case 0: x = res.getStringArray(R.array.word0); break;
case 1: x = res.getStringArray(R.array.word1); break;
case 2: x = res.getStringArray(R.array.word2); break;
case 3: x = res.getStringArray(R.array.word3); break;
//and so on
}
我知道这是非常重复的,特别是因为我最终想拥有1000个数组。我能做些什么来改善它?
我必须使用XML资源存储方法。
答案 0 :(得分:3)
您可以通过名称获取资源ID:
final Resources resources = getResources();
final String name = "word" + i;
final int id = resources.getIdentifier(name, "array", getPackageName());
final String[] array = resources.getStringArray(id);