2012-01-12 124 views
0

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

我创建了一个MenuListActivity类,它扩展了一个ListActivity,该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)); 
} 

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

什么才能正确地做到这一点? (并希望修复我的崩溃;-))。

问候 巴特

+0

我改变了MenuListActivity类的MenuListAdapter作为一个成员变量和崩溃似乎已停止。 – 2012-01-16 12:12:48

回答

0

我跑入之前这个问题,我使用的 “setNotifyOnChange(真)”;希望有所帮助。