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

来源:互联网 发布:tears and rain 知乎 编辑:程序博客网 时间:2024/05/22 00:30

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

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

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

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

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

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

注意一下细节:

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

 

 

 

 

 

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

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

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

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

 

1 0
原创粉丝点击