这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android Spinner列表选择框的应用的相关资料,这里对spinner的属性和常用事件和数据绑定都做了介绍,需要朋友可以参考下
Android Spinner列表选择框的应用
Spinner 是 Android 的列表选择框,不过 spinner 并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。
Spinner 属性:
● android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表。
● android:entries:使用
● android:prompt:对当前下拉列表设置标题,仅在dialog模式下有效。传递一个“@string/name”资源,需要在需要在资源文件中定义
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
- 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的实例详解,如有疑问,请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源: http://www.phperz.com/article/17/0912/345931.html