Spinner不显示数据,点击才显示列表,点击子项数据又上不去。。

小灯光环
博客专家认证
2014-09-06 11:32:37
不知道说清楚没,页面加载完之后,Spinner什么都不显示,数据是通过ArrayAdapter提供的,点击可以正常显示数据列表,可是我点击子项之后,Spinner还是什么都不显示,很奇怪,有没有人知道为什么。。。


private void setupView() {
//为spinner封装数据
getSpinnerDatas();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(context, R.layout.item_spinner_2,questions);
spinner=(Spinner) findViewById(R.id.spinner1);
spinner.setAdapter(adapter);
spinner.setSelection(0,true);
}


getSpinnerDatas();方法是调用服务端代码获取Spinner数据,和这个有关系吗。。
...全文
2105 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
eru_suki 2017-05-27
  • 打赏
  • 举报
回复
引用 8 楼 feibao1988 的回复:
这个问题好像是楼主异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。 最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题
感谢解惑,问题解决了
hoang_cam 2017-05-11
  • 打赏
  • 举报
回复
有没有具体代码说明一下啊
hoang_cam 2017-05-11
  • 打赏
  • 举报
回复
怎么解决的啊
CD8891 2017-04-04
  • 打赏
  • 举报
回复
引用 8 楼 feibao1988 的回复:
这个问题好像是楼主异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。 最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题
正解,问题迎刃而解
Chelsea0522 2016-08-23
  • 打赏
  • 举报
回复
引用 8 楼 feibao1988 的回复:
这个问题好像是楼主异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。 最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题
确实是我们这种菜鸟用得到的。
qq_22548329 2016-03-23
  • 打赏
  • 举报
回复
zml_2015正解
qq_22548329 2016-03-23
  • 打赏
  • 举报
回复
正解。。。。。
zml_2015 2016-02-21
  • 打赏
  • 举报
回复
8楼feibao1988说的对,如果你设置静态的一个数组的话,显示是没有问题的,但当你异步加载数据的时候,你spinner中的数据是动态添加的,在动态添加完成后,应该重新设置一下Adapter数据,但一定是在异步加载数据的onPostExecute方法中去spinner.setAdapter(mAdapter);你在异步加载的方法外去重新设置适配器数据是无效的
未子涵 2016-01-16
  • 打赏
  • 举报
回复 1
我也遇到同样问题,原因是设置l了spinner的width和height,而其值又不足以显示内容(主要是height太小),所以没显示出来,你试试把它们都改大看看,我是这个原因
android_kaifa 2015-07-09
  • 打赏
  • 举报
回复
解决了帮我说说是什么原因吧,因为我也遇到了这个问题
android_kaifa 2015-07-09
  • 打赏
  • 举报
回复
你们解决了没有?
feibao1988 2015-04-13
  • 打赏
  • 举报
回复
这个问题好像是楼主异步加载数据造成的。当调用spinner.setAdapter()时候,那个adapter中还没有数据,自定义adapter也是一样问题,其实哪怕adapter中仅有一条记录,后期异步添加数据都没有问题。但一条数据都没有便会出现该问题,然而点击spinner任然会显示异步加载的数据。 最好的办法是,是异步数据加载完成后在调用spinner.setAdapter()就不会存在该问题
sty8sy 2015-03-20
  • 打赏
  • 举报
回复
补充一下,我的List item是自定义的,每个item有四个元素,三个textview,一个imageview,下拉列表都可以正常显示的。
sty8sy 2015-03-20
  • 打赏
  • 举报
回复
我也遇到这个问题了,同样是从服务器获取列表,setAdapter以后spinner的下拉列表有值,但是默认选项是空白的。从logcat里看点击item没有进入setOnItemSelectedListener监听程序,但是从本地获取的list就可以正常显示和监听点击事件。 实在没辙了,求高手解救!
choco_coco 2015-01-03
  • 打赏
  • 举报
回复
我也遇到这个问题了。。。请问你解决了吗
哎,真难 2014-09-30
  • 打赏
  • 举报
回复
你debug看下getview呗,看下是否真的写进去了,,,
DrSmart 2014-09-30
  • 打赏
  • 举报
回复
setDropDownView 在adapter中重写下看看
黄诚实_ 2014-09-29
  • 打赏
  • 举报
回复
你服务端获取数据是不是在另外线程里做的,断点看看questions的值
十三邵 2014-09-29
  • 打赏
  • 举报
回复
引用 楼主 wlwlwlwl015 的回复:
不知道说清楚没,页面加载完之后,Spinner什么都不显示,数据是通过ArrayAdapter提供的,点击可以正常显示数据列表,可是我点击子项之后,Spinner还是什么都不显示,很奇怪,有没有人知道为什么。。。

	private void setupView() {
		//为spinner封装数据
		getSpinnerDatas();
		ArrayAdapter<String> adapter=new ArrayAdapter<String>(context, R.layout.item_spinner_2,questions);
		spinner=(Spinner) findViewById(R.id.spinner1);				
		spinner.setAdapter(adapter);
		spinner.setSelection(0,true);	
	}
getSpinnerDatas();方法是调用服务端代码获取Spinner数据,和这个有关系吗。。
我也不知道,帮你顶一下吧。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧