I am working on an app that requires removing items from a ListView on a button event.
I tried to remove it from ArrayList and create the whole new adapter and load the list again. As my list is huge, doing this will affect the performance of my app. So I was wondering if there is any other way by which I could remove an item from my list dynamically.
Edit: I tried what you said.
When I removed one item it worked perfectly, but as I increase the number of selected items it starts giving me IndexOutOfBoundException.
Here's my code:
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{}
}
Here, notes is a reference to an object of SimpleAdapter.