一.Spinner下拉列表:
1. 说明:
是一种常见的图形组件,它可以为用户提供列表的选择方式,也复选框或单选钮相比号可以节省
手机屏幕的空间。在Android中通过使用android.widget.Spinner类实现。
2. 定义:
java.lang.Object
|-android.view.View
|-android.view.ViewGroup
|-android.widget.AdapterView<T extends android.widget.Adapter>
|-android.widget.AbsSpinner
|-android.widget.Spinner
3.由于Spinner的核心问题在于内容的设置上,所以所讲的操作方法也是与内容设置有关。
1.setAdapter(SpinnerAdapter adapter): 设置下拉列表框中的显示内容。
2.SpinnerAdapter的功能就是一个适配器,会将所需的数据进行包装并放在Spinner中。
3.设置内容的方式:
一:直接通过资源文件配置:
1.可以在values文件夹之中定义若干个资源文件,例如,定义一个表示城市信息的下拉选项,
就可以定义一个city_data.xml.
在city_data.xml文件中配置:
<string-array name=city_data>
<item>北京</item>
<item>上海</item>
<item>成都</item>
<item>杭州</item>
</string-array>
在main.xml中配置:
<Spinner
android:id="@+id/my2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="请输入你喜欢的城市"
android:entries="@array/city_data"
/>
二:通过android.widget.ArrayAdapter类
ArrayAdapter类 功能:
读取资源文件中定义的列表项或者是通过List集合设置列表项。
package com.spinner;
import java.util.Collection;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.ListIterator;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerActivity extends Activity {
private Spinner spinner = null;
private ArrayAdapter<CharSequence> adpter = null;
private Spinner spiedu = null;
private ArrayAdapter<CharSequence> adpteredu = null;
private ArrayList<CharSequence> dataedu = null; // 定义一个集合数据
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.spinner = (Spinner) super.findViewById(R.id.my3); // 得到Spinner组件
this.adpter = ArrayAdapter.createFromResource(this, R.array.color_data,
android.R.layout.simple_spinner_item); // 实例化ArrayAdapter
this.adpter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 换个显示风格
this.spinner.setAdapter(adpter); // 设置显示信息
// 配置List集合包装的下拉内容:
this.dataedu = new ArrayList<CharSequence>();
this.dataedu.add("小学");
this.dataedu.add("初中");
this.dataedu.add("高中");
this.dataedu.add("专科");
this.dataedu.add("本科");
this.spiedu = (Spinner) findViewById(R.id.my4); // 取得下拉框
this.spiedu.setPrompt("请选择你的学历");
this.adpteredu = new ArrayAdapter<CharSequence>(this,
android.R.layout.simple_spinner_item, dataedu);
this.adpteredu
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 换个显示风格
this.spiedu.setAdapter(adpteredu);
}
}