作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
java.lang.IllegalStateException: 适配器的内容已经改变但是ListView没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。
我的 ListView 包含大量数据
当列表中的数据更改时,我使用处理程序调用波纹管代码
listviewAdapter.notifyDataSetChanged();
但我有时会遇到同样的错误,而不是每次我加载它时提前致谢
最佳答案
问题不是适配器更新的位置,应该是:适配器更新的时间。
它看起来像:您绑定(bind)到适配器的数据已更改,并且 ui 已更新,所以这一次,系统发现数据已更改但无法调用 notifyDataSetChanged
。
因此,建议当您更改适配器的数据时,立即调用 notifyDataSetChanged
,
或
不要在你的线程中直接改变适配器的数据,你应该将数据发送给hanlder
,并在handler
中使用数据替换或改变适配器的数据和 notifyDataSetChanged
。
所以无论如何,建议获取数据可以在后台线程中运行,并更新数据,notifyDataSetChanged
在ui线程中使用。
关于android - 即使在调用 notifyDataSetCanged() 之后, ListView java.lang.IllegalStateException;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10241765/
java.lang.IllegalStateException: 适配器的内容已经改变但是ListView没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。 我的 Lis
我是一名优秀的程序员,十分优秀!