Android控件Spinner实现下拉列表.doc
文本预览下载声明
Spinner是Android的下拉列表控件,今天对这个控件进行了学习,发现该控件比其它简单控件使用起来稍微复杂,特地将Spinner控件的使用方法以及注意事项记录下来,以备后用。
Spinner控件在Android中的继承结构如下:
java.lang.Object?? ? android.view.View????? ? android.view.ViewGroup?? ??????? android.widget.AdapterViewT extends android.widget.Adapter??????????? ? android.widget.AbsSpinner?? ????????????? android.widget.Spinner?
? ??由此可见,Spinner的继承结构比较复杂,在继承树中有AdapterView,这是比较重要的一项,因为我们就是通过Adapter来为Spinner设置下拉列表项的。?Spinner的重点问题就是下拉列表项的配置,通过之前组件的了解,我们知道资源组件的配置有两种方式,一种是通过XML文件来配置,一种是通过程序来配置。而从Spinner的文档中,我们可以看到,对它的配置需要使用Adapter类的实现。?
下面分别对两种方式配置Spinner控件的列表项进行介绍。
一. XML方式配置Spinner列表项
首先给出一个主视图的XML布局代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 LinearLayout
????android:layout_width=match_parent
????android:layout_height=wrap_content
????android:orientation=vertical
?
????TextView
????????android:layout_width=wrap_content
????????android:layout_height=wrap_content
????????android:text=收入类别:
????????android:id=@+id/textView /
?
????Spinner
????????android:layout_width=match_parent
????????android:layout_height=wrap_content
????????android:entries=@array/arr_incomeType
????????android:prompt=@string/incomeType_prompt
????????android:id=@+id/spinner_incomeType /
/LinearLayout 这段代码定义了一个TextView控件和Spinner控件,Spinner控件指定了entries属性为一个字符串数组,对应的ID为arr_incomeType,这个数组被定义在一个名为arrays.xml的资源文件中:
arrays.xml的内容如下:
?
1
2
3
4
5
6
7
8
9 ?xml version=1.0 encoding=utf-8?
resources
????string-array name=arr_incomeType
????????item上班收入/item
????????item礼尚往来 /item
????????item意外收入/item
????????item其它收入/item
????/string-array
/resources 这样,Spinner就定义完成了,下面我们看看Activity类的实现代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package com.example.myapplication2.app;
??
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
??
public class MainActivity extends Activity {????
??
????@Override
????protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setConte
显示全部