spinner控件初始化时,会调用它的选择监听事件,默认选择第一个
一、Spinner比较好用的属性
- spinner的entries属性,就可以不用设置spinner的Adapter,也可以填充数据
<Spinner
android:id="@+id/spCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:prompt="请选择城市"
android:entries="@array/cities"/>
- spinner的spinnerMode属性,spinner显示为对话框或者是下拉框形式;
android:spinnerMode=["dialog"|"dropdown"]
prompt属性表示spinner列表上方的提示
spinnerMode="dialog"效果图,可以看到我们设置的提示符"请选择城市"
spinnerMode="dropdown"效果图
二、设置spinner显示数据
使用Spinner布局文件使用的是系统默认的;使用创建ArrayAdapter两种方式,传入不同的数据源;
- 使用xml文件作为数据源
private void initView(){
city= (Spinner) findViewById(R.id.spCity);
SpinnerAdapter adapter=null;
adapter=ArrayAdapter.createFromResource(this,R.array.cities,android.R.layout.simple_spinner_dropdown_item);
city.setAdapter(adapter);
}
- 使用数组或者是List作为数据数据源
ArrayList<String>list=new ArrayList<String>();
SpinnerAdapter adapter =
new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
三、spinner点击事件处理
city.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//这个方法里可以对点击事件进行处理
//i指的是点击的位置,通过i可以取到相应的数据源
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
四、用代码来点击spinner
city.setSelection(1,true);
选择Spinner里的第二个数据;