假设我有一个像这样的资源 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<array name="difficulties">
<item>
<integer name="level">1</integer>
<integer name="fixed_blocks">2</integer>
<integer name="color_count">2</integer>
</item>
<item>
<integer name="level">2</integer>
<integer name="fixed_blocks">4</integer>
<integer name="color_count">3</integer>
</item>
<item>
<integer name="level">3</integer>
<integer name="fixed_blocks">6</integer>
<integer name="color_count">3</integer>
</item>
</array>
</resources>
如何从 a 中获取整数值item
按名字?这TypedValue
的 API 似乎不包含任何这方面的方法。如果这是不可能的TypedArray
如何?
如果我可以按序号从项目中获取值,那也可以。
我不记得这是可能的(但我可能是错的)。从项目的结构来判断(在difficulties
数组)你可以做其他事情,你可以使用整数数组的数组。知道项目数组有level
在第一个位置,fixed_blocks
作为第二个位置等,您可以轻松获得值。您可以在此处找到相关示例Android 资源 - 数组的数组 https://stackoverflow.com/questions/4326037/android-resource-array-of-arrays
Edit:这是您正在寻找的方法吗?
private int[] getLevelConstants(int level) {
int[] result = null;
TypedArray ta = getResources().obtainTypedArray(R.array.difficulties);
// keep in mind the differences between the level(starts at 1) and the index of the difficulties array which starts at 0
int id = ta.getResourceId(level, 0);
if (id > 0) {
result = getResources().getIntArray(id);
} else {
// something bad
}
return result;
}
数组将是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="difficulties">
<item>@array/level1</item>
<item>@array/level2</item>
</integer-array>
<integer-array name="level1" >
<item>1</item>
<item>2</item>
<item>2</item>
</integer-array>
<integer-array name="level2" >
<item>2</item>
<item>4</item>
<item>3</item>
</integer-array>
</resources>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)