从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)呢? 请注意,我有很多县…也许使用不同的方法?

  • Eclipse Android XML跳转到编辑器
  • 我怎样才能在FrameLayout右边alignment一个元素?
  • 命名空间'广告'没有绑定
  • 单一的XML,多个活动和那里的performance
  • 在Android中使用ActionbarSherlock和jeremyfeinstein slidingmenu自定义ActionBar
  • 在android中的背景颜色圆angularbutton
  • 每次我点击Eclipse中的Android XML文件时,它都会加载所有API版本的数据
  • 如何从Android的xmlstring资源检索二维数组?
  • 在官方文档中没有<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>