在两个文件中访问相同的资源ID

时间:2013-06-07 10:11:35

标签: android android-xml android-resources

如何从两个不同的文件中访问相同的资源ID。 Java中的示例:

public final class Strings_v1 {
    String one = "AAAA";
    String two = "BBBB";
    String three = "CCCC";
}

public final class Strings_v2 {
    String one = "DDDD";
    String two = "EEEE";
    String three = "FFFF";
}

现在我可以访问Strings_v1.oneStrings_v2.one

是否可以在XML中执行相同操作?

1 个答案:

答案 0 :(得分:1)

最接近这种方法的方法是使用字符串数组。例如,您可以使用以下命令定义资源文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="strings_v1">
        <item>AAAA</item>
        <item>BBBB</item>
        <item>CCCC</item>
    </string-array>
    <string-array
            name="strings_v2">
        <item>AAAA</item>
        <item>BBBB</item>
        <item>CCCC</item>
        </string-array>
</resources>

然后,在您的Java代码中,您必须在使用它之前获取整个数组:

Resources res = getResources();
String[] strings_v1 = res.getStringArray(R.array.strings_v1);
String[] strings_v2 = res.getStringArray(R.array.strings_v2);
//Assuming an array of textViews
ActivityManager activityMgr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for(int i = 0; i<3; ++i)
    (activityMgr.isUserAMonkey())? textView[i].setText(strings_v1[i]) : textView[i].setText(strings_v2[i]);

你能解释一下你为什么要这样做,因为可能有不同的方法来解决这个问题吗?