从string数组获取属性名称

我有像这样的string数组:

<string-array name="USA"> <item name="NY">001</item> <item name="LA">002</item> <item name="WA">003</item> </string-array> 

我可以得到这些数字:

 Resources res = getResources(); int arryid = res.getIdentifier("USA", "array", getPackageName()); String[] numbers = res.getStringArray(arryid); 

但是我怎样才能得到这个名字(NY,LA,WA)呢? 请注意,我有很多县…也许使用不同的方法?

Related of "从string数组获取属性名称"

在官方文档中没有<item> name属性。 所以我不认为会有任何方法来获得这些密钥。

但是,如果您想获取stringstring-array ,则可以通过编程获取它,但不能用于<item>

由于“001”只是索引,为什么不简单使用呢?

 <string-array name="USA"> <item>NY</item> <item>LA</item> </string-array> 

那么只需使用index + 1的位置:

 String[] usaStates = getResources().getStringArray(R.array.USA); int index = 0; String firstStateName = usaStates[index]; int firstStatePosition = (index + 1); 

除此之外,您可以使用两个数组并将它们合并到一个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]); } 
 String[] numbers = getResources().getStringArray(R.array.USA); 

从数组中获取数据使用。

 numbers[id] 

像这样添加数组。

 <string-array name="USA"> <item>NY</item> <item>LA</item> <item>WA</item> </string-array>