更改我的适配器的内容

时间:2011-08-03 16:48:10

标签: android

我的activity中有一个ListView,最初设置为某个Adapter。然后,点击某个按钮后,我只需拨打listView.setAdapter(new DifferentAdapter(this, foo));

一开始似乎工作正常。用户界面更新,一切都很好。最后,它崩溃了,日志显示了我:

E/AndroidRuntime(29724): 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(2, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]

我猜你只要随时调用setAdapter()就不那么简单了。我需要notifyDataSetChanged还是其他什么?如果重要,我没有使用ListActivity

修改

从下面说明:这非常简单。我的Activity中有两个内部类,每个内部类都扩展了BaseAdapter。所以我有两个不同的适配器,在某些时候我只想切换ListView使用不同的适配器。

1 个答案:

答案 0 :(得分:0)

显然这很好用:

listView.setVisibility(View.GONE);
listView.setAdapter(new MyAdapter(MyActivity.this, mList));
listView.setVisibility(View.VISIBLE);