I have a custom ArrayAdapter that uses an ArrayList<OrderedProductItem>
for my ListView. Inside this ListView I have an AutoCompleteTextView that also uses a custom ArrayAdapter with an ArrayList<Product>
. On initialization this AutoCompleteTextView contains the Names of all Products (around 1250), minus 1 (the OrderedProductItem's Product).
The User can then use a Spinner to select a Product-Tag and I create a filtered ArrayList<Product>
, so I only get a list of all Products containing this Product-Tag (still minus the 1). So, my question is: What is the best way to replace an ArrayAdapter's object-list?
I know I can just re-create and re-assign a new ArrayAdapter instance in my ListActivity:
myAdapter = new MyAdapter(this, R.layout.item_view, myList);
setListAdapter(myAdapter);
I also know I can use a clear and then an addAll to replace everything:
// NOTE: myAdapter.setNotifyOnChange is kept on default (true)
myAdapter.clear();
myAdapter.addAll(myList);
I guess the second one is probably best, since we don't want to create a new Instance every time, or does ArrayAdapter have some kind of method like setArray()
and I just missed it when looking for it? Or is there even another way that is better for performance than this second option?