Как очистить Android ListView и заполнить его новыми данными?

У меня есть счетчик и listview в том же действии. Listview загружается со списком элементов. я хочу, когда пользователь нажимает на элемент из spinner, listview будет четким, и новый listview загрузится в соответствии с выбором элемента в spinner

    setListAdapter(new ArrayAdapter<String>(this, R.layout.listviewxml, video));

       ListView lv=getListView();

       lv.setTextFilterEnabled(true);

enter image description here

Пожалуйста скажите как это сделать?

Я не могу очистить listview

5 ответов


Если вы прошли список или массив для адаптера, потом

// Clear collection..
collection.clear();
// Add data to collection..
collection.add();
// Refresh your listview..
listview.getAdapter().notifyDataSetChanged();

(эти коды похожи на псевдокод, ваш синтаксис может отличаться)


когда новый элемент выбран в вашем Spinner используйте на свой ListView адаптер :

    //Clear existing items
    listAdapter.clear();
    //Add new items
    listAdapter.addAll(collectionOfItems);
    //Notify that the data has changed
    listAdapter.notifyDataSetChanged();

вы можете просто попробовать установить нулевой адаптер в listview. Так что вы могли бы просто сделать :

    lv.setadapter(null);

вы должны сохранить ссылку на адаптер и выполнить clear на этом. Затем вы можете добавить дополнительные элементы снова с помощью адаптера.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listviewxml, video);
setListAdapter(adapter);

затем использовать

adapter.clear();

попробуйте это. его работы для меня:)

https://stackoverflow.com/a/41158674/7200297

или

ArrayList<DetailsForCallhistoryListActivity> callhistory_details_list;

затем

callhistory_details_list.clear();