如何删除列表查看所有项目

在我的应用程序中,如果你点击一个button,那么我想删除所有的listview项目。 在这里,我使用基础适配器将项目添加到列表视图。

我如何dynamic地删除列表视图项目。

Solutions Collecting From Web of "如何删除列表查看所有项目"

再次调用setListAdapter() 。 这次用一个空的ArrayList。

ListView基于Adapter的基础数据进行操作。 为了清除ListView你需要做两件事情:

  1. 清除您从适配器设置的数据。
  2. 通过调用notifyDataSetChanged刷新视图

例如,请参阅下面扩展BaseAdapterSampleAdapterBaseAdapter

 public class SampleAdapter extends BaseAdapter { ArrayList<String> data; public SampleAdapter() { this.data = new ArrayList<String>(); } public int getCount() { return data.size(); } public Object getItem(int position) { return data.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { // your View return null; } } 

在这里,您将ArrayList<String> data作为适配器的数据。 虽然你可能没有必要使用ArrayList,但是在你的代码中将会有类似的东西来表示你的ListView中的数据

接下来你提供一个清除这个数据的方法,这个方法的实现就是清除底层的数据结构

 public void clearData() { // clear the data data.clear(); } 

如果你正在使用Collection的任何子类,他们将有clear()方法,你可以像上面那样使用。

一旦你有了这个方法,你需要在你的onClick上调用clearDatanotifyDataSetChanged ,因此onClick的代码如下所示:

 // listView is your instance of your ListView SampleAdapter sampleAdapter = (SampleAdapter)listView.getAdapter(); sampleAdapter.clearData(); // refresh the View sampleAdapter.notifyDataSetChanged(); 

如果使用List对象并传递给适配器,则可以从List对象中移除该值,并使用适配器对象调用notifyDataSetChanged()。

例如

 List<String> list = new ArrayList<String>(); ArrayAdapter adapter; adapter = new ArrayAdapter<String>(DeleteManyTask.this, android.R.layout.simple_list_item_1, (String[])list.toArray(new String[0])); listview = (ListView) findViewById(R.id.list); listview.setAdapter(adapter); listview.setAdapter(listAdapter); 

为了删除这样做

 list.remove(index); //or list.clear(); adpater.notifyDataSetChanged(); 

或没有列表对象从列表中删除项目。

 adapter.clear(); adpater.notifyDataSetChanged(); 

你只能使用

  lv.setAdapter(null); 

我用这个声明,它为我工作:

  setListAdapter(null) 

这一个调用一个默认的构造函数,它不会在类中扩展BaseAdapter。

我只是清理arraylist,尝试values.clear();

 values = new ArrayList<String>(); values.clear(); ArrayAdapter <String> adapter; adapter = new ArrayAdapter<String>(this, R.layout.list,android.R.id.text1, values); lista.setAdapter(adapter); 

adapter删除数据并调用adapter.notifyDataSetChanged();

使用任何适合你的需求的波纹pipe选项

 listview.removeViews(1,listview.getChildCount()); 

要么

 listview.removeViewInLayout(your view);