Как очистить Android ListView и заполнить его новыми данными?
У меня есть счетчик и listview в том же действии. Listview загружается со списком элементов. я хочу, когда пользователь нажимает на элемент из spinner, listview будет четким, и новый listview загрузится в соответствии с выбором элемента в spinner
setListAdapter(new ArrayAdapter<String>(this, R.layout.listviewxml, video));
ListView lv=getListView();
lv.setTextFilterEnabled(true);
Пожалуйста скажите как это сделать?
Я не могу очистить 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();