Android中提供的列表选择框(Spinner)相当于网页中的下拉列表框,通常用于提供一序列可选择的列表项供用户进行选择。
Spinner的数据源提供方式常用的有两种:
1)数组资源文件方式
2)指定适配器方式
现就每种方式的实现步骤详细说明如下:
一、数组资源文件方式
(1)在res\values目录下新建resources文件,命名为arrays.xml,在该文件中添加一个字符串数组,名称为bank,具体代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="bank">
<item >农行</item>
<item >工行</item>
<item >建行</item>
<item >中国银行</item>
</string-array>
</resources>
(2)创建Spinner
在需要使用Spinner的layout文件中创建Spinner,本例是在activity_main.xml文件中创建,命名为spBank,设置Spinner属性entries的值为步骤(1)中创建的bank,具体代码如下:
<Spinner
android:id="@+id/spBank"
android:entries="@array/bank"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"/>
到此数组资源文件方式创建完毕,运行程序,效果如下:
二、指定适配器方式
(1)创建Spinner,步骤同法一中的步骤(2),唯一不同的是不设定Spinner的entries属性值,为了与法一有区别,将其命名为spBank1,并将其放在界面中的右边,具体代码如下:
<Spinner
android:id="@+id/spBank1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="60dp"
android:layout_marginTop="10dp"/>
(2)创建适配器
Android中常用的数据适配器有三种:
1)ArrayAdapter
2)SimpleAdapter
3)BaseAdapter
第一种适用于纯文本类型,后面两种适用于自定义列表项内容。由于下拉列表框用得多的就是纯文本类型,因此在此仅说明ArrayAdapter,后面两种会在ListView和GridView中说明。
创建ArrayAdapter适配器通常可以使用以下两种方法:一种是通过数组资源文件创建;另一种是通过在java文件中使用字符串数组创建。
在MainActivity.java文件的onCreate方法中创建ArrayAdapter,具体代码如下:
1)数组资源文件创建ArrayAdapter代码:
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.bank, android.R.layout.simple_spinner_item);
数组资源文件的创建方法同法一中的步骤(1)。
2)字符串数组创建ArrayAdapter代码:
String[] bank=new String[]{"农行","工行","建行","中国银行"};
ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, bank);
(3)给Spinner指定Adapter
在MainActivity.java文件的onCreate方法中获取到Spinner控件,同时设置Adapter,具体代码如下:
Spinner spinner=(Spinner)findViewById(R.id.spBank1);
spinner.setAdapter(adapter);
到此,指定适配器方式创建完毕,运行程序,效果如下: