Click here to Skip to main content
13,089,818 members (48,096 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
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 ;-)).
Posted 12-May-13 18:46pm
Updated 12-May-13 22:42pm
v5

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy |
Web04 | 2.8.170813.1 | Last Updated 13 May 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100