Android 从字符串数组中获取属性名
我的字符串数组如下所示:Android 从字符串数组中获取属性名,android,android-xml,Android,Android Xml,我的字符串数组如下所示: <string-array name="USA"> <item name="NY">001</item> <item name="LA">002</item> <item name="WA">003</item> </string-array> 但是我怎样才能同时得到这些名字(纽约、洛杉矶、华盛顿)? 请注意,我有很多县。。。也许使用不同的方法 St
<string-array name="USA">
<item name="NY">001</item>
<item name="LA">002</item>
<item name="WA">003</item>
</string-array>
但是我怎样才能同时得到这些名字(纽约、洛杉矶、华盛顿)?
请注意,我有很多县。。。也许使用不同的方法
String[] numbers = getResources().getStringArray(R.array.USA);
要从数组中获取数据,请使用
numbers[id]
像这样添加数组
<string-array name="USA">
<item>NY</item>
<item>LA</item>
<item>WA</item>
</string-array>
纽约
洛杉矶
华盛顿州
既然“001”只是索引,为什么不直接使用它呢
<string-array name="USA">
<item>NY</item>
<item>LA</item>
</string-array>
除此之外,您可以使用两个数组并将它们合并到一个HashMap
:
<string-array name="USA">
<item>NY</item>
<item>LA</item>
</string-array>
<string-array name="USA_pos">
<item>001</item>
<item>002</item>
</string-array>
String[] usaStates = getResources().getStringArray(R.array.USA);
String[] usaStatePositions = getResources().getStringArray(R.array.USA_pos);
Map <String, String> map = new HashMap<>(usaStates.length);
for (int i = 0; i < usaStates.length; i++) {
map.put(usaStates[i], usaStatePositions[i]);
}
纽约
洛杉矶
001
002
字符串[]usaStates=getResources().getStringArray(R.array.USA);
字符串[]usStatePositions=getResources().getStringArray(R.array.USA_pos);
Map Map=新的HashMap(usaStates.length);
for(int i=0;i中没有名称的属性
所以我不认为会有任何办法得到那些钥匙
但是,如果您想获取字符串
或字符串数组
的名称,可以通过编程方式获取,但对于
则不能,您可以改为制作HashMap。试试这个。
String[] usaStates = getResources().getStringArray(R.array.USA);
int index = 0;
String firstStateName = usaStates[index];
int firstStatePosition = (index + 1);
<string-array name="USA">
<item>NY</item>
<item>LA</item>
</string-array>
<string-array name="USA_pos">
<item>001</item>
<item>002</item>
</string-array>
String[] usaStates = getResources().getStringArray(R.array.USA);
String[] usaStatePositions = getResources().getStringArray(R.array.USA_pos);
Map <String, String> map = new HashMap<>(usaStates.length);
for (int i = 0; i < usaStates.length; i++) {
map.put(usaStates[i], usaStatePositions[i]);
}