android Spinner setSelection无效 总显示第一项
来源:互联网 发布:淘宝店铺进货 编辑:程序博客网 时间:2024/06/06 03:46
当在做两个spinner联动时,spinner2依据spinner1的选择填充数据,然后使用setSeletion(2)来设置默认项。结果发现:spinner2显示的总是第一项,但是实际选择的确实已经是position 2的位置 。
解决方法:
旧代码:
spinner.setAdapter(adapter);
spinner.setSelection(2);
解决方案有二:
(1)
spinner.setAdapter(adapter);
spinner.setSelection(2,true); //spinner会重新layout
(2) 推荐
spinner.setAdapter(adapter);
adapter.notifyDataSetChanged(); //通知spinner刷新数据
spinner.setSelection(2);
那么,这到底是什么原因造成的?我认为这是一个bug 。这种情况通常发生在重新填充数据之后,除此之外,使用setSelection(int position)都能得到正确的显示。
setSelection(int position, boolean animate)和setSelection(int position) 实现机制有较大区别,当调用前者时重新layout,立即触发onItemSelected函数,作用相当于用手直接点击。而后者设置了下次选择位置:setNextSelectedPositionInt(position); 然后请求Layout;,而requestLayout并非立即执行,仅仅是一个schedule。但是后者可能在重新装载数据然后Layout时丢失了某些状态。
原文地址:http://www.xuebuyuan.com/672724.html
- android Spinner setSelection无效 总显示第一项
- Android Spinner的setSelection()不成功
- Android ListView setSelection()无效没作用
- 关于Android Spinner setSelection 和 onItemSelected事件的触发顺序
- ListView setSelection 无效问题
- ListView setSelection(0)无效
- listview setselection 无效解决办法
- ListView setSelection() 无效
- ListView setSelection()无效
- select2选中第一项无法显示问题
- listview.setSelection ()无效的问题
- Spinner类setSelection执行流程源码解析
- Android listView 总是显示最后一项
- Android-Spinner下拉列表显示
- 为什么ListView的setSelection无效了?
- ListView的setItemChecked()或者setSelection()无效是怎么回事?
- ListView设置setSelection无效的解决方案
- Android ListView默认选中第一项或第N项
- win8.1安装office2016
- 轻量级javaEE企业应用实战 学习问题记录1
- mybatis调用存储过程小经验
- Xcode7中创建静态库
- 机器学习职位需要的七个关键技能(翻译)
- android Spinner setSelection无效 总显示第一项
- 回到故事开始的地方
- 关于z-index 那些你不知道的事
- 有符号数与无符号数之间的转换
- spring quartz 定时任务同时间执行2次的问题
- Dubbo集群示例
- ROS plugin原理
- 设置导航栏透明
- PS操作01 - PS切手机图标 + Android.9.png图片制作