欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中Spinner(下拉框)控件的使用详解

程序员文章站 2024-03-04 17:49:54
android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧。 spinne...

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(下拉框)控件的使用详解,希望对大家有所帮助