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 ;-)).