最近在联系开发DaysMatter时遇到一个问题:

app中使用ListView来展示所有事件,每次添加完事件后使用下面代码来更新ListView.

1 toDoListView.refreshDrawableState();

会出现如下错误,错误内容是讲ListView的adapter必须是在UI线程中修改,不能在后台线程中修改

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(2131034172, class android.widget.ListView) 
with Adapter(class android.widget.SimpleAdapter)]

在SO上看到一个类似的问题(http://stackoverflow.com/questions/9771017/the-content-of-the-adapter-has-changed-but-listview-did-not-receive-a-notificati), 解决方法:

1 runOnUiThread(new Runnable() {
2   public void run() {
3     mAllResultsItem.add(item);
4     mAllResultsAdapter.notifyDataSetChanged();
5   }
6 });

 

相关文章:

  • 2021-07-11
  • 2022-12-23
  • 2021-05-28
  • 2021-11-02
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-21
  • 2022-12-23
  • 2021-09-10
  • 2022-12-23
  • 2021-10-23
  • 2021-06-30
相关资源
相似解决方案