首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我经常在android listview的java.lang.IllegalStateException上随机崩溃

我经常在android listview的java.lang.IllegalStateException上随机崩溃
EN

Stack Overflow用户
提问于 2012-10-10 23:06:45
回答 1查看 287关注 0票数 0
代码语言:javascript
运行
复制
10-10 20:37:19.576: ERROR/AndroidRuntime(7619): Uncaught handler: thread main exiting due to uncaught exception
10-10 20:37:19.586: ERROR/AndroidRuntime(7619): 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(2131296396, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.ListView.layoutChildren(ListView.java:1432)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.AbsListView.onLayout(AbsListView.java:1119)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:900)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:900)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:900)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.View.layout(View.java:6836)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1003)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1640)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.os.Looper.loop(Looper.java:205)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at android.app.ActivityThread.main(ActivityThread.java:4409)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at java.lang.reflect.Method.invokeNative(Native Method)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at java.lang.reflect.Method.invoke(Method.java:521)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-10 20:37:19.586: ERROR/AndroidRuntime(7619):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 23:20:20

之所以会出现此异常,是因为您正在从后台线程更改适配器的内容。请更改您的实现,以便仅从UI线程更新适配器。

异常本身提到了这一点:

java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。确保适配器的内容不是从后台线程修改的,而是仅从UI线程修改的。

这里有一个关于正确使用ListViews和适配器的很好的教程:http://www.vogella.com/articles/AndroidListView/article.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12822593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档