Spinner,通过Adapter提供数据,如果是静态的数据(写死的数据),那么spinner一开始就会默认显示第一个数据,
在点开列表后,选中其他数据后,会显示相应选中的数据,
但是如果在Spinner中通过Adapter提供的数据如果是动态添加的(或异步加载的),那么就可能会碰到这个问题:
页面加载完后,Spinner不会显示默认数据,而且打开下拉列表(或Alert弹出框)选中数据后,仍然不显示数据,即使是手动通过setSelection(position)的方法设置要显示的数据,也是徒劳;
这个问题好像是异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。
最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题
注意一下细节:
一定是在异步加载数据的onPostExecute方法中去spinner.setAdapter(mAdapter);你在异步加载的方法外去重新设置适配器数据是无效的
如果,您认为这篇博客让您有些收获,不妨点击一下【顶】。
如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。
因为,我的热情需要您的肯定和支持。
感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!