如何清除Android ListView并用新数据填充它?

时间:2011-11-29 12:40:42

标签: android listview sqlite

我在同一个Activity中有一个微调器和一个列表视图。 listview加载了一个项目列表。我想当用户从微调器点击项目时,列表视图将被清除,新的列表视图将根据微调器中的项目选择加载

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

       ListView lv=getListView();

       lv.setTextFilterEnabled(true);

enter image description here

请告诉我该怎么做?

我无法清除列表视图

5 个答案:

答案 0 :(得分:16)

如果您已将列表或数组传递给适配器,则

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

(这些代码与伪代码类似,您的语法可能会有所不同)

答案 1 :(得分:5)

Spinner适配器的ListView使用中选择新项目时

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

答案 2 :(得分:2)

您可以尝试将null适配器设置为listview。所以你可以这样做:

    lv.setadapter(null);

答案 3 :(得分:0)

您应该存储对适配器的引用并对其执行清除。然后,您可以使用适配器再次添加更多项目。

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

然后再使用

adapter.clear();

答案 4 :(得分:0)

试试这个。它对我有用:)

 YourArrayList_Object.clear(); // clear the listview 

ArrayList<DetailsForCallhistoryListActivity> callhistory_details_list; 

然后

callhistory_details_list.clear();