android中的java.lang.IllegalStateException?

时间:2012-02-23 09:24:25

标签: android listadapter

我正在使用三个标签。当我点击标签时,会启动一个活动,显示多个带有标题的列表视图。为此我使用listadapter 我的代码似乎是adapter.addsection ("Header String",new ArrayAdapter(this,R.layout.row,cursor,from,to);然后我设置列表使用 list.setadapter(适配器)。当我点击标签时,一切正常。我的问题发生了,在我滚动我的列表视图,这是在另一个活动和 按下模拟器后退按钮并单击tab.Now当我点击tab时,我的应用程序崩溃,logcat显示以下错误。

 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(-1, class android.widget.ListView) with Adapter(class com.t.s.SeperatedListAdapter)]

这是什么解决方案?我使用了adapter.notifydatasetchanged()来解决这个问题。但是我做不到。

1 个答案:

答案 0 :(得分:0)

原因是: 您的数据已更改,当返回上一个活动时,listview将自动刷新,此时系统发现数据已更改但没有notifyDataChanged调用,因此抛出错误。

因此,如果其他活动更改了数据,您可以尝试:在您之前的方法活动中onResume,尝试使用notifyDataChanged进行通知。