今天在调试Android ListView的时候发现明明向ListView中的适配器中绑定的list里面添加了数据,但是弹出的ListView界面上始终不显示。实现的主要功能是通过点击一个button通过socket请求一组数据,然后弹出dialog告知用户请稍后,等数据接收完毕后,关闭dialog,弹出另一个activity,通过listview显示这组数据。
在网上查了一下,可能的原因有3个:
1、数据源没有更新,调用notifyDataSetChanged无效。
2、数据源更新了,但是它指向新的引用,调用notifyDataSetChanged无效。
3、数据源更新了,但是adpter没有收到消息通知,无法动态更新列表。
但是发现我的notifyDataSetChanged实际上起作用了,只是在adapter中getcount的时候,突然绑定的list的长度变为空了,但事实上之前,list中是被赋值过的,纠结了好久,最后在list前加了个static,结果奇迹般的问题解决了,至今很费解,总之先记下来吧。