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

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

原文地址:https://www.cnblogs.com/kingsam/p/5772162.html