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 中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章