首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

急ListView的notifyDatasetChanged()有关问题

2013-12-16 
急,ListView的notifyDatasetChanged()问题本帖最后由 JavaLover00000 于 2011-09-13 18:08:46 编辑使用Lis

急,ListView的notifyDatasetChanged()问题
本帖最后由 JavaLover00000 于 2011-09-13 18:08:46 编辑 使用ListView时候,发现在List结尾追加数据,然后用notifyDataSetChanged( ) 动态刷新有效果,但是在List的最前面追加数据,notifyDataSetChanged( )就不起作用。问下有人遇到过这种情况吗



mTweets.addAll(newTweets);
mAdapter.notifyDataSetChanged();


这样就可以刷新界面


mTweets.addAll(0, newTweets);
mAdapter.notifyDataSetChanged();


这样页面不会刷新


[解决办法]
原因是这样的:notifyDataSetChanged会判断是否当前项是否是显示状态,如果是显示状态就不用刷新,如果不是显示状态,则当滚动时就刷新
[解决办法]
用消息机制试一试:
private static final int UPDATE = 1;

Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_UPDATE:
mAdapter.notifyDataSetChanged();
break;
default:
break;
}
super.handleMessage(msg);
}
};

……
mTweets.addAll(newTweets);
Message msg = new Message();
msg.what = UPDATE_UPDATE;
myHandler.sendMessage(msg);
……
[解决办法]
我测试过,两种addall的方法都没有问题。请仔细检查,或贴出更多的代码。

热点排行