我正在开发一个需要在按钮事件中从ListView
中删除项目的应用程序。
我试图将其从ArrayList
中删除,并创建整个新适配器,然后再次加载列表。由于我的 list 很大,因此这样做会影响我的应用程序的性能。所以我想知道是否还有其他方法可以动态地从列表中删除项目。
编辑:我尝试了您所说的内容。
当我删除一个项目时,它工作得很好,但是当我增加所选项目的数量时,它开始给我IndexOutOfBoundException。
这是我的代码:
public void onClick(View view)
{
SparseBooleanArray checkedPositions = new SparseBooleanArray();
checkedPositions.clear();
checkedPositions = lv.getCheckedItemPositions();
int size = checkedPositions.size();
if(size != 0)
{
for(int i = 0; i <= size; i++)
{
if(checkedPositions.valueAt(i))
{
list.remove(notes.getItem(checkedPositions.keyAt(i)));
notes.notifyDataSetChanged();
}
}
}
else{}
}
在这里,
notes
是对SimpleAdapter对象的引用。 最佳答案
好吧,您只需使用remove()
的ArrayAdapter
方法从列表中删除所需的项目。
一种可能的方法是:
Object toRemove = arrayAdapter.getItem([POSITION]);
arrayAdapter.remove(toRemove);
另一种方法是修改
ArrayList
并在notifyDataSetChanged()
上调用ArrayAdapter
。arrayList.remove([INDEX]);
arrayAdapter.notifyDataSetChanged();
关于android - 如何在单击按钮时从ListView动态删除项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5497580/