急,ListView的notifyDatasetChanged()问题

JavaLover00000 2011-09-13 06:07:12
使用ListView时候,发现在List结尾追加数据,然后用notifyDataSetChanged( ) 动态刷新有效果,但是在List的最前面追加数据,notifyDataSetChanged( )就不起作用。问下有人遇到过这种情况吗



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


这样就可以刷新界面


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


这样页面不会刷新

...全文
3496 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvgaga 2013-12-23
  • 打赏
  • 举报
回复
不能出现这种问题吧?
  • 打赏
  • 举报
回复
是不是没有setAdapter(adapter)?
dumengjia19881116 2012-03-26
  • 打赏
  • 举报
回复
楼主什么地方影响了,我的也有这种问题啦
fishmen26 2011-09-14
  • 打赏
  • 举报
回复
我测试过,两种addall的方法都没有问题。请仔细检查,或贴出更多的代码。
leidetianshiyj 2011-09-14
  • 打赏
  • 举报
回复
用消息机制试一试:
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);
……
j_f0001 2011-09-14
  • 打赏
  • 举报
回复
原因是这样的:notifyDataSetChanged会判断是否当前项是否是显示状态,如果是显示状态就不用刷新,如果不是显示状态,则当滚动时就刷新
JavaLover00000 2011-09-14
  • 打赏
  • 举报
回复
没人遇到过吗?没人知道怎么解决吗?自己顶一下~
JavaLover00000 2011-09-14
  • 打赏
  • 举报
回复
多谢关注,问题解决了,是其他地方的代码影响了!

80,352

社区成员

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

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