Android 列表选择框 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文件中)
- item1
- item2
- item3
对于简单的数据可以使用ArrayAdapter来设置适配器,但是对于稍微复杂的数据ArrayAdapter就无法满足需求了,这时需要使用SimpleAdapter来做适配。
SimpleAdapter适配器同样基础自Adapter,他可以映射静态的XML格式的布局文件到视图中。可以指定List
mSpinner=(Spinner)findViewById(R.id.sp_bank); banklist=(List)resultMap.get("list"); //将可选内容与ArrayAdapter连接起来 adapter=newArrayAdapter (self,R.layout.simple_spinner_item,banklist); //设置下拉列表的风格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将adapter添加到spinner中 mSpinner.setAdapter(adapter); //添加事件Spinner事件监听 mSpinner.setOnItemSelectedListener(newSpinnerSelectedListener());
classSpinnerSelectedListenerimplementsOnItemSelectedListener{ publicvoidonItemSelected(AdapterView>parent,Viewview,intposition,longid){ Stringstr=parent.getItemAtPosition(position).toString(); //Toast.makeText(self,"你点击的是:"+str,2000).show(); bankname=str; } publicvoidonNothingSelected(AdapterView>arg0){ } }
Spinner弹出列表事件上是listview,所以listview的各种方法都可以用在Spinner弹出窗口这里,当时也可以自定义数据源,自定义Adapter继承BaseAdapter实现更为灵活更为复杂的效果。
Spinner在初始化时会自动调用一次OnItemSelectedListener事件,这是因为系统会自动加载默认值造成的。
解决方法:手动添加默认值,这里需要主要调用顺序,必须在注册方法之前调用。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!