一、使用spinner时遇到的问题
1.传统使用apapter的方法
2.使用存在问题,当需要变更adapter数据时,我当时是直接将 strs 的值改变,然后通知adapter进行刷新,以为会和listview平时用法相同,但是结果显示,这样根本无法修改spinner的数据及ui
3.出现这一现象的原因:listview的传值一般是用的 list 集合,对集合进行修改是 list.add() ,这是没问题的,但是我们spinner传递的是striing[],它作为参数传递后,adapter保存的是它的地址值,而你后续再更改 strs ,是将 strs 重新赋值了,但是不影响adapter实际访问的地址,所以没做修改
4.解决方法:将ArrayAdapter的内部类型限制去掉,第三个参数传list,之后可以通过list.add()等方法修改ui显示,示例:
二、自定义adapter
1.adapter需继承BaseAdapter
2.其中的getView是定义的spinner的显示选中内容框的布局及具体操作,getDropDownView,是定义的下拉选择框的布局及具体操作
3.示例中是用的同一个布局,只做了textview是否仅显示一行的区分
4.当然可以在布局中自定义间距,大小,颜色等限制
5.使用方法:
另附上简单的item布局