1

我有一个包含许多字符串数组的 Android 应用程序的 XML 资源文件,每个字符串数组都命名为 word#,其中 # 是一个数字(当前为 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 资源存储方法。

4

1 回答 1

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);
于 2013-01-07T16:41:09.460 回答