Androidで様々な配列をリソースとして定義する
Androidでは文字列などのリソースをxmlで定義することができる。xmlで定義しておくとディレクトリ名のポストフィックスを利用して(valuesとvalues-jaなど)簡単に多言語対応できるのが便利。
このリソースファイルでは文字列だけでなく、配列も定義できるのでコードの外に出せるものはできるだけxmlに書き出しましょう。
下記、resourceの記述方法とjavaからの参照方法。string, integerはそれぞれ専用のタグ名、アクセスメソッドがある。その他のリソースは
文字列配列
- .xml
<string-array name="sample_names"> <item>foo</item> <item>bar</item> <item>baz</item> </string-array>
- java
String[] names = getResources().getStringArray(R.array.sample_names);
int配列
- .xml
<integer-array name="sample_ids"> <item>1</item> <item>2</item> <item>3</item> </integer-array>
- .java
int[] ids = getResources().getStringArray(R.array.sample_ids);
Drawable配列
- .xml
<array name="sample_images"> <item>@drawable/title</item> <item>@drawable/logo</item> <item>@drawable/icon</item> </array>
- .java
TypedArray images = getResources().obtainTypedArray(R.array.sample_images); Drawable drawable = images.getDrawable(0));
Color配列
- xml
<array name="sample_colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array>
- java
TypedArray colors = getResources().obtainTypedArray(R.array.sample_colors); int color = colors.getColor(0,0);