spinner与arrays.xml的使用

时间:2023-03-09 17:38:31
spinner与arrays.xml的使用

在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数据。

 spinner = (Spinner) getView().findViewById(R.id.spinner);
final String[] data_list = getResources().getStringArray(R.array.home_place_array);
arr_adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item,
data_list);
//设置样式
arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//加载适配器
spinner.setAdapter(arr_adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = data_list[position];
Toast.makeText(getActivity(),item,Toast.LENGTH_LONG).show();
} @Override
public void onNothingSelected(AdapterView<?> parent) { }
});

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);