background image

 最近一直在讲

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>