Android, arrays.xml で定義した配列を利用する
2010年06月28日
res/values/arrays.xml で配列を定義して、その内容を取得する方法のメモ。
TypedArray
を使って実数の配列を読み出す例と、getStringArray
を使って一発で文字列配列を読み出す例。
res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="weight_units_label"> <item>@string/grams</item> <item>@string/kilograms</item> <item>@string/ounces</item> <item>@string/pounds</item> </array> <array name="weight_units"> <item>1.0</item> <item>0.001</item> <item>0.03527</item> <item>0.0022</item> </array> </resources>
読み出し側のコード
public void onCreate(Bundle savedInstanceState) { /* 省略 */ Resources res = getResources(); TypedArray ta = res.obtainTypedArray(R.array.weight_units); for (int i = 0; i < ta.length(); i++) { Log.d(TAG, "index : " + i + ", value : " + ta.getFloat(i, (float) 0.0)); } unit_labels = getResources().getStringArray(R.array.weight_units_label); for (int i = 0; i < unit_labels.length; i++) { Log.d(TAG, "index : " + i + ", value : " + unit_labels[i]); } /* 省略 */ }
文字化けしているが、読み出しはちゃんとできている。