我是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()。
正确地做到这一点的方法是什么? (希望能解决我的崩溃问题; - ))。
此致 巴特
答案 0 :(得分:0)
我之前遇到过这个问题而且我使用了“setNotifyOnChange(true);”希望有所帮助。