关于adapter的数据更新问题
2016-12-01 12:23
302 查看
明明执行了notifyDataSetChanged()方法,但是还是会报The content of adapter has changed,but can't receive a notify异常!
原因是,原来不只是这一句代码要在主线程中,而且改变数据内容的代码也要在主线程中!否则会出现不一致的异步问题,你就会发现,跑断点时正常,运行时出错!
修改前:
修改后:
其中mListData是和adapter关联的数据集合,修改它也要在主线程中!!!
谢谢点击打开链接
原因是,原来不只是这一句代码要在主线程中,而且改变数据内容的代码也要在主线程中!否则会出现不一致的异步问题,你就会发现,跑断点时正常,运行时出错!
修改前:
//刷新完成变成第二页 mPage = 1; List l = JsonUtils.parseJsonArray(jsobj.getJSONArray("results")); mListData.clear(); mListData.addAll(l); Main.sHandler.post(new Runnable() { @Override public void run() { //更新数据 mListViewAdapter.notifyDataSetChanged(); // 千万别忘了告诉控件刷新完毕了哦! mRefreshLayout.refreshFinish(PullToRefreshLayout.SUCCEED); } });
修改后:
//刷新完成变成第二页 mPage = 1; final List l = JsonUtils.parseJsonArray(jsobj.getJSONArray("results")); Main.sHandler.post(new Runnable() { @Override public void run() { //更新数据 mListData.clear(); mListData.addAll(l); mListViewAdapter.notifyDataSetChanged(); // 千万别忘了告诉控件刷新完毕了哦! mRefreshLayout.refreshFinish(PullToRefreshLayout.SUCCEED); } });
其中mListData是和adapter关联的数据集合,修改它也要在主线程中!!!
谢谢点击打开链接
相关文章推荐
- 关于Adapter的notifyDataSetChanged()方法数据不更新问题解析
- 关于listitem点击事件根据position取得数据库数据Onresume()更新Adapter后取得数据错误的问题
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- 关于EF4.1更新数据后的显示问题-----PagedList
- android PagerAdapter notifyDataSetChanged() 无法更新数据问题解决
- SQL 关于有单引号数据更新的问题
- 【转】关于批量数据更新的问题(C#高性能)
- 关于IOS开发中数据版本更新需要考虑的问题
- 关于数据表映射在更新时候出现的一些问题
- 关于解决JQuery发送Ajax请求后,IE缓存数据不更新的问题
- 工作问题 解决关于hibernate 更新数据的问题
- 关于ViewPager的数据更新问题小结
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- 关于IOS开发中数据版本更新需要考虑的问题
- 关于批量数据更新的问题(C#高性能)
- 关于解决JQuery发送Ajax请求后,IE缓存数据不更新的问题
- 关于EF4.1更新数据后的显示问题-----PagedList
- 关于两个表更新数据的问题(update)
- 关于自定义Adapter中更新界面的问题
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法