I\'m trying to use in my Android Application the notifyDataSetChanged() method for an ArrayAdapter but it doesn\'t work for me.
For an ArrayAdapter, notifyDataSetChanged only works if you use the add(), insert(), remove(), and clear() on the Adapter.
When an ArrayAdapter is constructed, it holds the reference for the List that was passed in. If you were to pass in a List that was a member of an Activity, and change that Activity member later, the ArrayAdapter is still holding a reference to the original List. The Adapter does not know you changed the List in the Activity.
Your choices are:
ArrayAdapter to modify the underlying List (add(), insert(), remove(), clear(), etc.)ArrayAdapter with the new List data. (Uses a lot of resources and garbage collection.)BaseAdapter and ListAdapter that allows changing of the underlying List data structure.notifyDataSetChanged() every time the list is updated. To call it on the UI-Thread, use the runOnUiThread() of Activity.
Then, notifyDataSetChanged() will work.