对ListView活动的Android更新

时间:2012-01-12 14:11:28

标签: android listview listadapter

我是Android编程的新手,但不是一般的编程或Java。我的问题主要是关于最佳实践。

我创建了一个类MenuListActivity,它扩展了ListActivity,它显示列表中的菜单项,并在单击时启动另一个Activity。每个菜单都是MenuListActivity类的子类,并实现了一个getMenuItems()方法来创建菜单项。

在我的onCreate()方法中,我调用getMenuItems()来创建一个MenuListAdapter类,然后将其设置为ListActivity的ListView的适配器。

但是,有时我会收到一个illegalStateException,告诉我“适配器的内容已经改变,但ListView没有收到通知。”。请注意,它有时会发生,而不是所有时间。我没有在任何其他线程中触摸适配器,事实上适配器设置如下:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayList<MenuAdapterItem> menuItems = getMenuItems();
    this.setListAdapter(new MenuAdapter(this, menuItems));
}

我能想到的另一种可能性是创建一个Adapter成员变量,并在每次更新时调用notifyDataSetChanged()。

正确地做到这一点的方法是什么? (希望能解决我的崩溃问题; - ))。

此致 巴特

1 个答案:

答案 0 :(得分:0)

我之前遇到过这个问题而且我使用了“setNotifyOnChange(true);”希望有所帮助。