最近一直在讲
AndroidUI 的开发,今天讲一下 Spinner 控件,这是一个列表选择框,可以
弹出一个列表供用户选择。在本片博客中,会讲解
Spinner 的基本属性以及设置之后的效果,
以及使用
SimpleAdapter 绑定自定义格式的数据到 Spinner 中。
Spinner
Spinner 是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。 Spinner
是
ViewGroup 的间接子类,它和其他的 Android 控件一样,数据需要使用 Adapter 进行封装。
下 面 介 绍 一 下
Spinner 的 常 用 XML 属 性 , Android 也 为 其 属 性 提 供 了 相 应 的
getter、setter 方法:
android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉
列表(
dropdown),如果不特别设置,为下拉列表。。
android:entries:使用<string-array.../>资源配置数据源。
android:prompt : 对 当 前 下 拉 列 表 设 置 标 题 , 仅 在 dialog 模 式 下 有 效 。 传 递 一 个
“@string/name”资源,需要在需要在资源文件中定义<string.../>。
作为一个列表选择控件,
Spinner 具有一些选中选项可以触发的事件,但它本身没有定
义这些事件,均继承自间接父类
AdapterView。Spinner 支持的几个常用事件有以下几个:
AdapterView.OnItemCLickListener:列表项被点击时触发。
AdapterView.OnItemLongClickListener:列表项被长按时触发。
AdapterView.OnItemSelectedListener:列表项被选择时触发。
PS : 因 为 适 配 器 可 以 设 置 各 种 不 同 的 样 式 , 有 选 择 、 单 选 、 多 选 , 所 以
OnItemCLickListener 和 OnItemSelectedListener 是适用于不同场景的。
Spinner 的数据绑定
对于
Spinner 展示的数据源,一般使用两种方式设定数据:
通过
XML 资源文件设置,这种方式比较死板,但是如果仅仅需要展示固定的、简单的数据,
这种方式还是可以考虑的,比较直观。
使用
Adapter 接口设置,这是最常见的方式,动态、灵活,可以设定各种样式以及数据来源。
先来讲讲通过
XML 资源文件设置 Spinner 数据的方式,首先需要在/res/values 目录下
新 建
XML 格 式 的 资 源 文 件 , 名 字 不 重 要 , 但 是 一 般 会 使 用 strings.xml 。 在 其 中 的
<resourse.../>标签下,定义<string-array.../>标签,通过它中的<item.../>标签来设置选择数据。
XML 文件结构:
<resource>
<string-array name="arrayname">
<item>item1</item>