arrays.xml文件

arrays.xml文件中用于放各种数组数据,比如字符串数组、整型数组等,数组中的数据可能是具体的值,也有可能是对资源数据的引用,下面针对这两种情况通过代码来获取相应的数组数据。

一、数组中的数据为具体的值:

arrays.xml文件中的数组如下:

  1. <string-array name="select_dialog_items">  
  2.     <item>Command one</item>  
  3.         <item>Command two</item>  
  4.         <item>Command three</item>  
  5.         <item>Command four</item>  
  6. </string-array>  
<string-array name="select_dialog_items">
	<item>Command one</item>
        <item>Command two</item>
        <item>Command three</item>
        <item>Command four</item>
</string-array>

代码中获取该数组资源的具体代码如下:

  1. String[] items = getResources().getStringArray(R.array.select_dialog_items);  
String[] items = getResources().getStringArray(R.array.select_dialog_items);

items数组中的数据就是arrays.xml文件中对应资源id R.array.select_dialog_items中的数据;

数据为其它类型的数组也可以通过Resources类中相应的方法获取,比如:

获取整型数组的数据方法为:

  1. public int[] getIntArray(int id) throws NotFoundException  
public int[] getIntArray(int id) throws NotFoundException

获取文本数组的数据方法为:

  1. public CharSequence[] getTextArray(int id) throws NotFoundException  
public CharSequence[] getTextArray(int id) throws NotFoundException

二、数组中的数据为对资源数据的引用:

arrays.xml文件中的数组如下:

  1. <string-array name="feed_icons">  
  2.     <item>@drawable/latest</item>  
  3.     <item>@drawable/video</item>  
  4.     <item>@drawable/world</item>  
  5.     <item>@drawable/sports</item>  
  6.     <item>@drawable/arts</item>  
  7.     <item>@drawable/dining</item>  
  8.  </string-array>  
<string-array name="feed_icons">
	<item>@drawable/latest</item>
	<item>@drawable/video</item>
	<item>@drawable/world</item>
	<item>@drawable/sports</item>
	<item>@drawable/arts</item>
	<item>@drawable/dining</item>
 </string-array>

代码中获取该数组资源的具体代码如下:

  1. TypedArray typedArray = getResources().obtainTypedArray(R.array.feed_icons);  
  2. String[] titleArr = getResources().getStringArray(R.array.feed_names);  
  3. if( null != titleArr ){  
  4.     int titleLength = titleArr.length;  
  5.     for( int index = 0; index < titleLength; index++ ){  
  6.         int feedResId = typedArray.getResourceId( index, 0 );  
  7.         //...  
  8.     }  
  9. }  
TypedArray typedArray = getResources().obtainTypedArray(R.array.feed_icons);
String[] titleArr = getResources().getStringArray(R.array.feed_names);
if( null != titleArr ){
    int titleLength = titleArr.length;
    for( int index = 0; index < titleLength; index++ ){
        int feedResId = typedArray.getResourceId( index, 0 );
        //...
    }
}

获取arrays.xml中数据项为引用资源数据的数组时,首先通过Resources类中的obtainTypedArray方法获取到TypedArray实例,然后通过TypedArray方法中的getResourcesId方法获取数组中每一项的资源id,这样就能顺利地引用到数组中资源了。


通过代码获取arrays.xml中的数组资源时,数组中的元素项不宜过多,特别是一次性获取的时候,有可能你在使用时它还没有获取到你需要使用的数组项。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值