Как очистить ListView Android и заполнить его новыми данными?
У меня есть спиннер и 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);
Вы должны хранить ссылку на адаптер и выполнять четкие действия. Затем вы можете снова добавить дополнительные элементы с помощью адаптера.
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();
Comments