前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android  Spinner列表选择框的应用

Android  Spinner列表选择框的应用

作者头像
砸漏
发布2020-10-22 10:55:11
1.7K0
发布2020-10-22 10:55:11
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

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文件中)

代码语言:javascript
复制
<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);

代码语言:javascript
复制
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());
代码语言:javascript
复制
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 事件,这是因为系统会自动加载默认值造成的。

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

代码语言:javascript
复制
//在事件注册之前调用,一般指定第0个为默认值
spinner.setSelection(0, true);

以上就是对Android Spinner的实例详解,如有疑问,请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档