Android使用xml文件中的array资源

创建数组资源

在value目录下创建arrays.xml文件
然后在arrays.xml文件中使用<string-array>或者<integer-array>标签定义数组:

<resources>
    <string-array name="languages">
        <item>Java</item>
        <item>C</item>
        <item>Python</item>
        <item>C++</item>
    </string-array>
    
    <integer-array name="rank">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
    </integer-array>

    <integer-array name="share_image">
        <item>@mipmap/btn_friends_circle</item>
        <item>@mipmap/btn_weixin_friends</item>
        <item>@mipmap/btn_qq_friends</item>
        <item>@mipmap/btn_qq_zone</item>
    </integer-array>
</resources>

引用数组资源

在java代码中引用

		Resources res = getResources();
        String[] languages = res.getStringArray(R.array.languages);
        int[] rank = res.getIntArray(R.array.rank);
        for(int i=0;i<languages.length;i++){
            Log.d("语言排名",languages[i]+":"+rank[i]);
        }

在这里插入图片描述

TypedArray typedArray = getResources().obtainTypedArray(R.array.share_image);
int id = typedArray.getResourceId(2, 0);
qqImageView.setImageResource(id);

在这里插入图片描述
在xml中引用

<Spinner
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:entries="@array/languages"/>

在这里插入图片描述
Tips:

其实 array 资源并不一定非要定义在 values/arrays.xml文件中,这只是一种不成文的约定,将上面的<string-array name="languages">定义在strings.xml中也是可以的

Android 系统对所有的 xml 资源文件其实是不加区别的,觉得 values 资源类型的不在于放在什么什么文件,而在于标签名,比如 string-array 的标签名决定了这是一个 array 资源

建议将数组资源统一放在 values/arrays.xml 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值