欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android studio 的下拉菜单Spinner使用详解

程序员文章站 2022-11-19 16:52:24
一、认识spinner spinner其实就是一个列表选择框。不过android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。 spinner 与 galle...

一、认识spinner

spinner其实就是一个列表选择框。不过android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。

spinner 与 gallery 都继承了absspinner,absspinner 继承了adapterview,因此它也表现出adapterview的特征:只要为adapterview提供adapter即可。

1.相关属性

  • android:dropdownhorizontaloffset:设置列表框的水平偏移距离
  • android:dropdownverticaloffset:设置列表框的水平竖直距离
  • android:dropdownselector:列表框被选中时的背景
  • android:dropdownwidth:设置下拉列表框的宽度
  • android:gravity:设置里面组件的对其方式
  • android:popupbackground:设置列表框的背景
  • android:prompt:设置对话框模式的列表框的提示信息(标题),只能够引用string.xml 中的资源id,而不能直接写字符串
  • android:spinnermode:列表框的模式,有两个可选值: dialog:对话框风格的窗口 dropdown:下拉菜单风格的窗口(默认)
  • 可选属性:android:entries:使用数组资源设置下拉列表框的列表项目

如果开发者使用spinner时己经可以确定列表选择框里的列表项,则完全不需要编写代码,只要为spinner指定android:entries属性即可让spinner正常工作;如果程序需要在运行时动态 地决定spinner的列表项,或者程序需要对spinner的列表项进行定制,则可使用adapter为 spinner提供列表项。

二、spinner示例

接下来通过一个简单的示例程序来学习spinner的使用方法。

继续使用widgetsample工程的listviewsample模块,在app/main/res/layout/目录下创建spinner_layout.xml文件,在其中填充如下代码片段:

android studio 的下拉菜单Spinner使用详解

在res/values/目录下新建arrays.xml文件,定义professionals数组资源,如下:

android studio 的下拉菜单Spinner使用详解

接下来为spinner提供adapter。新建spinneractivity.java文件,加载上面新建的布局文件,具体代码如下:

android studio 的下拉菜单Spinner使用详解

android studio 的下拉菜单Spinner使用详解

上面的程序比较简单,主要为spinner 设置了选中设置监听器。

修改程序启动的activity,运行程序,可以看到下图所示界面效果。

android studio 的下拉菜单Spinner使用详解

点击第一个spinner ,弹出选择对话框,

如下图所示。选择其中一项回到主界面,发现spinner 的值会改变为所选择的内容。

android studio 的下拉菜单Spinner使用详解

同理点击第二个spinner ,打开下拉列表选项框,如下图所示。

android studio 的下拉菜单Spinner使用详解

gallery与spinner组件有共同的父类:absspinner,表明gallery和spinner都是一个列表选择框。它们之间的区别在于,spinner显示的是一个垂直的列表选择框,而gallery显示的是一个水平的列表选择框。 gallery与spinner还有一个区别:spinner的作用是供用户选择,而gallery则允许用户通过拖动来查看上一个、下一个列表项。

gallery本身的用法非常简单——基本上与spinner的用法相似,只要为它提供一个内容 adapter即可,该adapter的getview()方法所返回的view将作为gallery列表的列表项。如果程序需要监控到gallery选择项的改变,通过为gallery添加onltemselectedlistener监听器即可实现。

android已经不再推荐使用gallery组件,而是推荐使用其他水平滚动组件,如horizontalscrollview和viewpager来代替gallery组件,所以此处不做过多讲解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。