0

如何从两个不同的文件访问相同的资源 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 中做同样的事情?

4

1 回答 1

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

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

于 2013-06-07T10:51:22.353 回答