新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> Android开发应用 >> 关于adapter change与listView同步的错误。

关于adapter change与listView同步的错误。

查看次数4025 发表时间2013-06-07 17:36:35

ListView在更新时报异常:ERROR/AndroidRuntime(15260): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of...

ListView在更新时报异常:
ERROR/AndroidRuntime(15260): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131099657, class android.widget.ListView) with Adapter(class com.pocketdigi.pptheater.ListAdapter)]

网上有很多蛋疼或者治标不治本的解决方法,其实解决方法很简单:

1.如何你使用线程处理的后台数据,那么就在run方法里面用Handler将数据send出来到主线程里面的handleMessage然后再addAll或者赋值;

2.如果用的异步task,那么在onPostExecute里面去add或者赋值就ok了,注意千万不要在后台去修改类变量的方式去修改数据;


此问题困扰我一年了,今天终于解决了,多谢了,兄弟,我发现即使数据处理不放在线程里面,也会报这个错,所以所有的数据处理还是要放在handler里面处理方可解决此问题



在线程里面不要持有数据的引用,而是直接搞局部变量然后send出去,再添加到类变量上面,绝对没有问题的。


(转发请注明转自:学PHP)    


  相关推荐




  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: