【发布时间】:2011-03-31 09:14:03
【问题描述】:
我正在开发一个应用程序,该应用程序需要在按钮事件上从 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 对象的引用。
【问题讨论】: