Spinner提供了一个数据集合中快速选择一项值的办法,默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown 菜单,从该菜单中可以为spinner选择一个新值。
使用如下:
首先在String.xml文件中添加数据信息
<resources>
<string name="app_name">SpinnerUse</string>
<array name="city">
<item >北京</item>
<item >上海</item>
<item >广州</item>
<item >天津</item>
</array>
</resources>
在布局文件中如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.xiyou.com.spinneruse.MainActivity">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner_city"
android:entries="@array/city"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
android:entries="@array/city" 表示Spinner的数据集合是从资源数组city中获取的,city数组定义在values/string.xml 中。
在MainActivity中直接加载布局即可,这种方式属于静态的添加选项。
动态添加选项:
在MainActivity中通过使用适配器进行资源与组件的关联。
首先得声明组件
private Spinner spinner_role;
spinner_role= (Spinner)findViewById(R.id.spinner_role);
String []roles= {"管理员","VIP会员","普通会员","游客"};
下面创建一个数组适配器,第一个参数为上下文,第二个为下拉列表的布局文件,第三个为下拉选项的组件的ID,第四个资源为数据源。
ArrayAdapter <String> adapter = new ArrayAdapter <String>(this, android.R.layout.simple_dropdown_item_1line,android.R.id.text1,roles);
spinner_role.setAdapter(adapter); // 设置适配器
运行在模拟器上如下: