Android中Spinner(下拉框)控件的使用详解
android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧。
spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。spinner是view类得一个子类。
1.效果图
2.创建页面文件(main.xml)
<spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <textview android:id="@+id/tvresult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="选择的水果" />
3.创建下拉框的数据源
list<string> list = new arraylist<string>(); list.add("苹果"); list.add("香蕉"); list.add("橘子"); list.add("香蕉");
4.创建适配器(下拉框的数据源是来自适配器)
arrayadapter<string> adapter=new arrayadapter<string>(this, android.r.layout.simple_spinner_item,list);
5.为适配器添加样式
adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
系统提供的样式如下
simple_spinner_dropdown_item(列表-间距较高比较好看)
simple_spinner_item(列表-间距紧凑不好看)
simple_list_item_checked(复选框-选中的有绿沟)
simple_list_item_single_choice (单选按钮)
6.向控件spinner添加适配器
spinner sp=(spinner) findviewbyid(r.id.spinner1); sp.setadapter(adapter);
释义
1. setadapter(spinneradapter adapter) ,从类的继承关系上看,arrayadapter是spinneradapter接口的间接实现类
7.实现选择项事件(使用匿名类实现接口)
sp.setonitemselectedlistener(new onitemselectedlistener() { // parent: 为控件spinner view:显示文字的textview position:下拉选项的位置从0开始 public void onitemselected(adapterview<?> parent, view view, int position, long id) { textview tvresult = (textview) findviewbyid(r.id.tvresult); //获取spinner控件的适配器 arrayadapter<string> adapter = (arrayadapter<string>) parent.getadapter(); tvresult.settext(adapter.getitem(position)); } //没有选中时的处理 public void onnothingselected(adapterview<?> parent) { } });
8.后台整体代码如下
public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); list<string> list = new arraylist<string>(); list.add("苹果"); list.add("香蕉"); list.add("橘子"); list.add("香蕉"); arrayadapter<string> adapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item, list); adapter.setdropdownviewresource(android.r.layout.simple_list_item_single_choice); spinner sp = (spinner) findviewbyid(r.id.spinner1); sp.setadapter(adapter); sp.setonitemselectedlistener(new onitemselectedlistener() { // parent: 为控件spinner view:显示文字的textview position:下拉选项的位置从0开始 public void onitemselected(adapterview<?> parent, view view, int position, long id) { textview tvresult = (textview) findviewbyid(r.id.tvresult); //获取spinner控件的适配器 arrayadapter<string> adapter = (arrayadapter<string>) parent.getadapter(); tvresult.settext(adapter.getitem(position)); } //没有选中时的处理 public void onnothingselected(adapterview<?> parent) { } }); }
以上所述是小编给大家介绍的android中spinner(下拉框)控件的使用详解,希望对大家有所帮助