文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android中怎么使用Spinner实现一个列表选择框

2023-05-30 22:55

关注

本篇文章为大家展示了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 事件,这是因为系统会自动加载默认值造成的。

解决方法:手动添加默认值,这里需要主要调用顺序,必须在注册方法之前调用。

//在事件注册之前调用,一般指定第0个为默认值spinner.setSelection(0, true);

上述内容就是Android中怎么使用Spinner实现一个列表选择框,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯