I am new to Android programming, but not to programming in general or Java. My question here is mainly about best practices.
I created a class MenuListActivity that extends a ListActivity that shows menu items in a list and starts another Activity when clicked. Each menu is a child class of the MenuListActivity class and implements a getMenuItems() method to create the menu items.
In my onCreate() method, I call that getMenuItems() to create a MenuListAdapter class that is then set as the adapter of the ListActivity's ListView.
However, sometimes I get an illegalStateException telling me that "The content of the adapter has changed but ListView did not receive a notification.". Notice it happens sometimes, not all the times. I do not touch the adapter in any other thread, in fact the adapter is set like this:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<MenuAdapterItem> menuItems = getMenuItems();
this.setListAdapter(new MenuAdapter(this, menuItems));
}
Another possibility I can think of, is to create an Adapter member variable and call notifyDataSetChanged() on each update.
What would be the way to do this correctly? (And hopefully fix my crashes ;-)).
Regards Bart
i ran into this problem before and i used "setNotifyOnChange(true);" hope that helps.