谁能给我一个示例代码删除所有的ListView项目,并替换为新的项目?
我尝试更换适配器项,但没有成功。我的代码是
populateList(){
results //populated arraylist with strings
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results);
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
listview.setOnItemClickListener(this);
}
// now populating list again
repopulateList(){
results1 //populated arraylist with strings
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results1);
listview.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
listview.setOnItemClickListener(this);
}
在这里,repopulateList()
方法将添加到ListView项,但它不会移除/替换所有ListView项。
发布于 2011-03-18 04:37:33
您将希望从适配器对象中remove()
项,然后在适配器上运行notifyDatasetChanged()
,任何ListView
都将(应该)回收和更新它自己。
下面是一个简短的AlertDialog
活动示例:
adapter = new MyListAdapter(this);
lv = (ListView) findViewById(android.R.id.list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
AlertDialog.Builder adb=new AlertDialog.Builder(MyActivity.this);
adb.setTitle("Delete?");
adb.setMessage("Are you sure you want to delete " + position);
final int positionToRemove = position;
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Ok", new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
MyDataObject.remove(positionToRemove);
adapter.notifyDataSetChanged();
}});
adb.show();
}
});
发布于 2010-11-03 14:51:29
我认为如果你添加下面的代码,它将会工作
listview.invalidateViews();
要删除项目,只需从我们传递给适配器的数组列表中删除该项目,然后执行listview.invalidateViews();
这将刷新列表视图
发布于 2010-04-01 15:51:44
您可以使用
adapter.clear()
这将删除第一个适配器的所有项,然后您可以设置另一个适配器,或者重用该适配器并将这些项添加到旧适配器。如果您使用
adapter.add()
要将数据添加到列表中,不需要调用notifyDataSetChanged
https://stackoverflow.com/questions/2558591
复制相似问题