是否可以在Android XML中跨String-Array共享公共值?

时间:2016-01-11 02:17:53

标签: android android-xml android-resources

对于我的Android开发,我有2个数组,除了第一个和最后一个值之外,它们非常相同。

<string-array name="minvalues">
    <item>Any Value</item>
    <item>100</item>
    <item>200</item>
    <item>300</item>
</string-array>

<string-array name="maxvalues">
    <item>100</item>
    <item>200</item>
    <item>300</item>
    <item>Any Value</item>
</string-array>

我在想有没有办法将常用值定义为100,200,300作为另一个数组,让minvaluesmaxvalues 包含它,因此我们可以在minvaluesmaxvalues之间分享共同的价值观。这在Android数组xml中是否可行?

1 个答案:

答案 0 :(得分:0)

我认为没有,因为值是字符串,您需要手动将它们转换为整数,以便使用

查找常用值
String[] minValues = getResources().getStringArray(R.array.minvalues);
String[] maxValues = getResources().getStringArray(R.array.maxvalues);

然后使用

将它们转换为int
int[] minValsInt = Arrays.asList(minValues).stream().mapToInt(Integer::parseInt).toArray();
int[] maxValuesInt = Arrays.asList(maxValues).stream().mapToInt(Integer::parseInt).toArray();

现在你可以遍历每一个并获得共同的值。

修改 以下是从post

获取重复项的方法
void findDupes(int[] a, int[] b) {
HashSet<Integer> map = new HashSet<Integer>();
for (int i : a)
    map.add(i);
for (int i : b) {
    if (map.contains(i))
        // found duplicate!    
} 

}

干杯