全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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学习笔记  # 弹出  # 自定义  # 可以使用  # 默认值  # 的是  # 希望能  # 资源配置  # 可选  # 来做  # 谢谢大家  # 用在  # 这是因为  # 写在  # 解决方法  # 绑定  # 最常见  # 弹出窗口  # 加载  # 有两个  # 自动加载 


相关文章: 建站VPS选购需注意哪些关键参数?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  建站之星安装提示数据库无法连接如何解决?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何快速上传自定义模板至建站之星?  如何用PHP快速搭建高效网站?分步指南  婚礼视频制作网站,学习*后期制作的网站有哪些?  建站主机选购指南与交易推荐:核心配置解析  长沙做网站要多少钱,长沙国安网络怎么样?  为什么Go需要go mod文件_Go go mod文件作用说明  如何在建站之星网店版论坛获取技术支持?  香港服务器部署网站为何提示未备案?  如何有效防御Web建站篡改攻击?  兔展官网 在线制作,怎样制作微信请帖?  Python多线程使用规范_线程安全解析【教程】  如何在万网ECS上快速搭建专属网站?  如何快速搭建高效简练网站?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何在宝塔面板创建新站点?  建站之星安装后界面空白如何解决?  网站制作的步骤包括,正确网址格式怎么写?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  简单实现Android文件上传  b2c电商网站制作流程,b2c水平综合的电商平台?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在七牛云存储上搭建网站并设置自定义域名?  建站之星后台管理:高效配置与模板优化提升用户体验  网站图片在线制作软件,怎么在图片上做链接?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何选择高效稳定的ISP建站解决方案?  建站之星免费版是否永久可用?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  制作电商网页,电商供应链怎么做?  如何基于PHP生成高效IDC网络公司建站源码?  php json中文编码为null的解决办法  装修招标网站设计制作流程,装修招标流程?  如何在IIS服务器上快速部署高效网站?  网站制作难吗安全吗,做一个网站需要多久时间?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站主机数据库如何配置才能提升网站性能?  建站之星导航如何优化提升用户体验?  平台云上自助建站如何快速打造专业网站?  如何通过西部建站助手安装IIS服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。