Search code examples
androidlistviewlistadapter

Android Updates to ListView Activity


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


Solution

  • i ran into this problem before and i used "setNotifyOnChange(true);" hope that helps.