Is it better to recreate the list adapter or clear and refill?

If I have ListViewwith CustomAdapterand let me have this method refresh()that updates the list with new results, should I:

  • Call new CustomAdapter(...)on initialization, and every time I call refresh(), I use adapter.clear()andadapter.add(...)

  • Call new CustomAdapter(...)every time I callrefresh()

Basically, I ask, is it better to recreate the adapter every time I upload new results, or is it better to clear the results in an existing adapter and add the whole list to it?

+4
source share
2 answers

notifyDataSetChanged() , .

: ListView , . , , , . ListView.setAdapter():

@Override
public void setAdapter(ListAdapter adapter) {
    if (mAdapter != null && mDataSetObserver != null) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
    }

    resetList();
    mRecycler.clear();

    ...

, ListView , , , , ( , ). .

, , ( ).

, , add() (, , ArrayAdapter). notifyDataSetChanged() .

+1

, , notifyDataSetChanged() .

API - ArrayAdapter, , clear(), add(), addAll(), notifyDataSetChanged() .., API.

, , , .

, .

+4

All Articles