shanahobo86
shanahobo86

Reputation: 497

Calling notifyDataSetChanged on a ListAdapter

I have a ListAdapter as shown below:

setListAdapter(new ArrayAdapter<String>(DeleteMenu.this,             
                                  android.R.layout.simple_list_item_1, 
                                  classes));

I am trying to call notifyDataSetChanged() on it within an onListItemClick() function. I've tried a few different ways and looked at similar questions here on StackOverFlow but I still can't figure it out.

Can someone please help?

Edit: I should be more clear, I'm not getting an error, I simply don't know what to call the function notifyDataSetChanged() method on. Do I have to assign my ListAdapter to a variable and call it like var.notifyDataSetChanged()?

Upvotes: 4

Views: 17888

Answers (3)

Pablo C. Garc&#237;a
Pablo C. Garc&#237;a

Reputation: 22404

((BaseAdapter) listView.getAdapter()).notifyDataSetChanged(); 

See more info in this answer: https://stackoverflow.com/a/4198569/3994630

Upvotes: 3

user1411084
user1411084

Reputation: 512

You should call notifyDataSetChanged on Adapter.

Adapter adapter = new Adapter();
ListView list = (ListView) findViewById(R.id.listview);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();

Upvotes: 9

Makibo
Makibo

Reputation: 1679

You can call the method notifyAdapterChanged() by getting a reference to the Adapter. You can either keep a local reference (like user1411084s answer), or retrieve it by calling:

getListAdapter()

Important to notice is that the interface ListAdapter doesn't provide the method notifyDataSetChanged(), so you should cast it to the type of the adapter you assigned earlier.

The result will look like this (able to call anywhere in your ListActivity/ListFragment:

((ArrayAdapter) getListAdapter()).notifyDataSetChanged();

Upvotes: 8

Related Questions