Android之Spinner选中列表数据不显示数据问题

Spinner,通过Adapter提供数据,如果是静态的数据(写死的数据),那么spinner一开始就会默认显示第一个数据,

在点开列表后,选中其他数据后,会显示相应选中的数据,

但是如果在Spinner中通过Adapter提供的数据如果是动态添加的(或异步加载的),那么就可能会碰到这个问题:

页面加载完后,Spinner不会显示默认数据,而且打开下拉列表(或Alert弹出框)选中数据后,仍然不显示数据,即使是手动通过setSelection(position)的方法设置要显示的数据,也是徒劳;

这个问题好像是异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。

最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题

注意一下细节:

一定是在异步加载数据的onPostExecute方法中去spinner.setAdapter(mAdapter);你在异步加载的方法外去重新设置适配器数据是无效的

 

 

 

 

 

如果,您认为这篇博客让您有些收获,不妨点击一下【】。

如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。

因为,我的热情需要您的肯定和支持。 

感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值