我是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()。
什么才能正确地做到这一点? (并希望修复我的崩溃;-))。
问候 巴特
我改变了MenuListActivity类的MenuListAdapter作为一个成员变量和崩溃似乎已停止。 – 2012-01-16 12:12:48