Android 列表选择框 Spinner详解及实例

Spinner 是 Android 的列表选择框,不过 spinner 并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。
Spinner 属性:
● android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表。
● android:entries:使用<string-array.../>资源配置数据源。
● android:prompt:对当前下拉列表设置标题,仅在dialog模式下有效。传递一个“@string/name”资源,需要在需要在资源文件中定义<string.../>。
Spinner 常用事件:
● AdapterView.OnItemCLickListener:列表项被点击时触发。
● AdapterView.OnItemLongClickListener:列表项被长按时触发。
● AdapterView.OnItemSelectedListener:列表项被选择时触发。
Spinner 数据绑定:
● 使用xml设置数组资源,简单方便但是不灵活,如果只是显示固定的简单数据可以使用。
● 使用 adapter 接口设置,最常见的方式,动态加载灵活,可以设置各种样式和数据来源。
XML 文件结构(一般写在string.xml文件中)
<resource> <string-array name="arrayname"> <item>item1</item> <item>item2</item> <item>item3</item> </string-array> <resource>
对于简单的数据可以使用 ArrayAdapter 来设置适配器,但是对于稍微复杂的数据 ArrayAdapter 就无法满足需求了,这时需要使用 SimpleAdapter 来做适配。
SimpleAdapter 适配器同样基础自 Adapter,他可以映射静态的 XML 格式的布局文件到视图中。可以指定 List<Map<P,T>> 格式数据,list 的数据对应 Spinner 中的每一行,Map 中的数据对应没一条数据 mSpinner = (Spinner)findViewById(R.id.sp_bank);
mSpinner = (Spinner)findViewById(R.id.sp_bank);
banklist = (List<String>) resultMap.get("list");
//将可选内容与ArrayAdapter连接起来
adapter = new ArrayAdapter<String>(self, R.layout.simple_spinner_item, banklist);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将adapter 添加到spinner中
mSpinner.setAdapter(adapter);
//添加事件Spinner事件监听
mSpinner.setOnItemSelectedListener(new SpinnerSelectedListener());
class SpinnerSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str = parent.getItemAtPosition(position).toString();
//Toast.makeText(self, "你点击的是:"+str, 2000).show();
bankname = str;
}
public void onNothingSelected(AdapterView<?> arg0) {
}
}
Spinner 弹出列表事件上是 listview,所以 listview 的各种方法都可以用在 Spinner 弹出窗口这里,当时也可以自定义数据源,自定义 Adapter 继承 BaseAdapter 实现更为灵活更为复杂的效果。
Spinner 在初始化时会自动调用一次 OnItemSelectedListener 事件,这是因为系统会自动加载默认值造成的。
解决方法:手动添加默认值,这里需要主要调用顺序,必须在注册方法之前调用。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 列表选择框
# Spinner详解及实例
# android studio 的下拉菜单Spinner使用详解
# Android使用Spinner控件实现下拉列表的案例
# Android使用 Spinner控件实现下拉框功能
# Android控件Spinner实现下拉列表及监听功能
# Android Spinner 组件的应用实例
# Android第三方开源下拉框NiceSpinner使用详解
# Android中使用Spinner实现下拉列表功能
# Android列表选择框Spinner使用方法详解
# Android-SPI学习笔记
# 弹出
# 自定义
# 可以使用
# 默认值
# 的是
# 希望能
# 资源配置
# 可选
# 来做
# 谢谢大家
# 用在
# 这是因为
# 写在
# 解决方法
# 绑定
# 最常见
# 弹出窗口
# 加载
# 有两个
# 自动加载
相关文章:
西安专业网站制作公司有哪些,陕西省建行官方网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
成都网站制作报价公司,成都工业用气开户费用?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
宝塔新建站点报错如何解决?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
建站主机选购指南:核心配置优化与品牌推荐方案
建站之星如何修改网站生成路径?
如何获取PHP WAP自助建站系统源码?
如何使用Golang安装API文档生成工具_快速生成接口文档
成都网站制作公司哪家好,四川省职工服务网是做什么用?
香港服务器租用每月最低只需15元?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
,交易猫的商品怎么发布到网站上去?
如何在万网自助建站中设置域名及备案?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
平台云上自助建站如何快速打造专业网站?
小程序网站制作需要准备什么资料,如何制作小程序?
代购小票制作网站有哪些,购物小票的简要说明?
大型企业网站制作流程,做网站需要注册公司吗?
建站之星价格显示格式升级,你的预算足够吗?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何在IIS中新建站点并配置端口与IP地址?
如何高效完成独享虚拟主机建站?
如何正确下载安装西数主机建站助手?
如何快速搭建自助建站会员专属系统?
临沂网站制作公司有哪些,临沂第四中学官网?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
无锡营销型网站制作公司,无锡网选车牌流程?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何快速搭建安全的FTP站点?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何用AWS免费套餐快速搭建高效网站?
如何将凡科建站内容保存为本地文件?
山东云建站价格为何差异显著?
如何快速登录WAP自助建站平台?
宝塔建站无法访问?如何排查配置与端口问题?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
全景视频制作网站有哪些,全景图怎么做成网页?
如何制作一个表白网站视频,关于勇敢表白的小标题?
实例解析Array和String方法
建站主机选哪家性价比最高?
如何快速搭建响应式可视化网站?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站之星备案流程有哪些注意事项?
如何选择可靠的免备案建站服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。