Android中的Spinner控件是一个下拉列表选择框,该控件在Android开发中经常使用。它提供了一种下拉列表选择输入的方式。通过查阅Android API可知,Spinner是ViewGroup的简介子类。因此它可以作为容器使用。下面是Spinner常用的XML属性:
XML属性 JAVA方法 相关说明
android:entries 无 使用数组资源设置该下拉列表框的列表项目
android:prompt 无 设置该列表框选择的提示
在程序开发中,如果已经确定下拉列表框里的选项,那么可以不用写JAVA代码,只要为Spinner的android:entries属性赋值即可实现一个下拉列表。如下面所示:
(1)Layout下的界面布局文件Main.xml,该布局中包含了一个Spinner组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 定义了一个Spinner组件,
指定该显示该Spinner组件的数组 -->
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/books"
android:prompt="@string/prompt"
/>
</LinearLayout>
(2)Main中用到的数组资源和字符串资源分别在values目录下的arrays.xml和string.xml中:
arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item>JAVA程序设计</item>
<item>C++程序设计</item>
<item>Android开发入门</item>
</string-array>
</resources>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, SpinnerTest!</string>
<string name="app_name">下拉列表选择框</string>
<string name="prompt">请选择你喜欢的图书</string>
</resources>
Java程序主Activity文件SpinnerActivity.java中,只要写如下代码,使用setContentView()显示界面布局即可:
package org.crazyit.spinner;
import android.app.Activity;
import android.os.Bundle;
public class SpinnerActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
上面在XML中定义好Spinner下拉列表框的列表选项,然后为Spinner的android:entries属性赋值来实现Spinner的下拉列表。除此之外,还可以使用Adapter来专门负责为Spinner提供列表选项内容。下拉列表的选项内容可以放到程序中也可以放到XML文件中,然后在通过Adapter来把列表选项内容组装个Spinner。
(1)下拉列表的选项内容放到程序代码中: