nar*_*esh 33 android listview adapter
在我的应用程序中,如果您单击一个按钮,那么我想删除所有列表视图项目.在这里,我使用基本适配器将项目添加到列表视图.
如何动态删除listview项目.
mah*_*mah 36
setListAdapter()
再打电话.这次是一个空的ArrayList.
mom*_*omo 24
ListView
基于的基础数据运作Adapter
.为了清除ListView
你需要做两件事:
notifyDataSetChanged
例如,请参阅SampleAdapter
下面扩展的骨架BaseAdapter
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;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里ArrayList<String> data
,您可以获得适配器的数据.虽然您可能没有必要使用ArrayList,但您的代码中会有类似的东西来表示ListView中的数据
接下来,您提供了一种清除此数据的方法,此方法的实现是清除底层数据结构
public void clearData() {
// clear the data
data.clear();
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Collection的任何子类,则它们将具有您可以如上所述使用的clear()方法.
一旦你有了这个方法,你想打电话clearData
和notifyDataSetChanged
您onClick
对这样的代码onClick
看起来是这样的:
// listView is your instance of your ListView
SampleAdapter sampleAdapter = (SampleAdapter)listView.getAdapter();
sampleAdapter.clearData();
// refresh the View
sampleAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
Pra*_*tik 10
如果您使用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);
Run Code Online (Sandbox Code Playgroud)
为了删除这样做
list.remove(index); //or
list.clear();
adpater.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
或没有列表对象从列表中删除项目.
adapter.clear();
adpater.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
93980 次 |
最近记录: |