gpt4 book ai didi

android - 如何在单击按钮时从 ListView 中动态删除项目?

转载 作者:IT老高 更新时间:2023-10-28 23:26:51 28 4
gpt4 key购买 nike

我正在开发一个需要在按钮事件上从 ListView 中删除项目的应用程序。

我试图从 ArrayList 中删除它并创建全新的适配器并再次加载列表。由于我的列表很大,这样做会影响我的应用程序的性能。所以我想知道是否有任何其他方法可以动态地从我的列表中删除一个项目。

编辑:我试过你说的。

当我删除一个项目时它工作得很好,但是当我增加所选项目的数量时它开始给我 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对象的引用。

最佳答案

你只需使用 ArrayAdapterremove() 方法从列表中删除所需的项目。

一种可能的方法是:

Object toRemove = arrayAdapter.getItem([POSITION]);
arrayAdapter.remove(toRemove);

另一种方法是修改 ArrayList 并在 ArrayAdapter 上调用 notifyDataSetChanged()

arrayList.remove([INDEX]);
arrayAdapter.notifyDataSetChanged();

关于android - 如何在单击按钮时从 ListView 中动态删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497580/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com