在Android中,用string-array是一种简单的提取XML资源文件数据的方法。
例:
把相应的数据放到values/arrays.xml文件里
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="shanghai_area"> <item>长宁区</item> <item>奉贤区</item> <item>徐汇区</item> <item>虹口区</item> </string-array> </resources>
然后在Activity里,直接使用相应的接口获取数据即可。示意代码如下:
String[] str = getResources().getStringArray(R.array.shanghai_area);
即可取得string-array name="shanghai_area"下的所有item数据。
1 spinner = (Spinner) getView().findViewById(R.id.spinner); 2 final String[] data_list = getResources().getStringArray(R.array.home_place_array); 3 arr_adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, 4 data_list); 5 //设置样式 6 arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 7 //加载适配器 8 spinner.setAdapter(arr_adapter); 9 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 10 @Override 11 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 12 String item = data_list[position]; 13 Toast.makeText(getActivity(),item,Toast.LENGTH_LONG).show(); 14 } 15 16 @Override 17 public void onNothingSelected(AdapterView<?> parent) { 18 19 } 20 });
spinner默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发OnItemSelectedListener事件;
spinner.setSelection(2,true);
2、图片资源的数组形式
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
TypedArray icons = getResources().obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);
或者:resid = icons.getResourceId(i,0);//参数含义,第一个参数为 :所取图片在数组中的索引,第二个参数为:未找到时,返回的默认值。
TypedArray colors = res.obtainTypedArray(R.array.colors);
int color = colors.getColor(0,0);