ListView setAdapter注意事项
2016-03-10 15:19
162 查看
写ListView的时候不小心写错了,忽然发现没有数据,这是两种写法。
setAdapter和adapter的创建这两行的执行顺序不一样。
debug:
第一种:
第二种:
平常的时候list没有数据或者数据发生改变了调用下notifyDataSetChanged listview就正常显示数据了。
但是这次为啥没有呢?setAdater()方法是将ListView(或者GridView或者其他)和具体的数据集绑定,并且会创建一个观察者DataSetObservable这个类的对象。当数据集发生变化时,DataSetObservable这个东西就会发现,我擦,你的数据集发生变化了,赶紧更新。
但是一开始就setAdapter()并且adapter为null,那么这个listView绑定的就是null,都不创建个观察者对象啊!更别提啥更新了!adapter后面再重新new也木有用了,因为这个重新new的这个Adapter并不是和listview绑定的那个啊。
setAdapter和adapter的创建这两行的执行顺序不一样。
debug:
第一种:
第二种:
平常的时候list没有数据或者数据发生改变了调用下notifyDataSetChanged listview就正常显示数据了。
但是这次为啥没有呢?setAdater()方法是将ListView(或者GridView或者其他)和具体的数据集绑定,并且会创建一个观察者DataSetObservable这个类的对象。当数据集发生变化时,DataSetObservable这个东西就会发现,我擦,你的数据集发生变化了,赶紧更新。
但是一开始就setAdapter()并且adapter为null,那么这个listView绑定的就是null,都不创建个观察者对象啊!更别提啥更新了!adapter后面再重新new也木有用了,因为这个重新new的这个Adapter并不是和listview绑定的那个啊。
相关文章推荐
- [置顶]Oracle碎碎念~1
- PHP写的二维码签到,大家支持一下吧!
- [置顶]Linux碎碎念
- 1089. Insert or Merge (25)
- zookeeper(一) --- zookeeper概述
- robotframework在IE浏览器运行缓慢,input text等待时间过长
- MySQL常见错误
- MyCAT ER分片的验证
- MySQL索引下推技术
- MySQL Range Optimization
- 运算符重载
- 电脑屏幕突然变成绿色的了
- 8个方法让你成为更优秀的程序员
- 支付宝双功能接口使用
- 打造平安城市精品视频监控网络
- MyBatis CRUD Demo
- 多行文本溢出
- 155.Evaluate the following SQL statement
- robotframework在IE浏览器运行缓慢,input text等待时间过长
- php手册学习