Android中有種使用數組的非常簡單的用法,在xml文件中獲取。
創建數組資源
在value目錄下創建arrays.xml文件
然后在arrays.xml文件中使用<string-array>或者<integer-array>標簽定義數組:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="languages"> <item>C語言</item> <item>Java </item> <item>C#</item> <item>PHP</item> <item>HTML</item> </string-array> <integer-array name="reminder_methods_values" translatable="false"> <item>1</item> <item>2</item> <item>3</item> </integer-array> </resources>
引用數組資源:
在java代碼中引用
Resources res =getResources(); String[] languages = res.getStringArray(R.array.languages); String[] reminder_methods = res.getIntArray(R.array.reminder_methods_values);
在xml中引用
這里以spinner控件為例,因為spinner的entries屬性剛好需要的是數組資源
<Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/languages" />
注意上面引用的時候是@array。
其實array資源並不一定非要定義在values/arrays.xml文件中,這只是一種不成文的約定,將上面的<string-array name="languages">定義在strings.xml中也是可以的。
Android系統對所有的xml資源文件其實是不加區別的,覺得values資源類型的不在於放在什么什么文件,而在於標簽名,比如string-array的標簽名決定了這是一個array資源。
建議將數組資源統一放在values/arrays.xml中。