我正在开发一个需要从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{}
}
Run Code Online (Sandbox Code Playgroud)
这里notes是对SimpleAdapter对象的引用.
Oct*_*ean 50
那么你只需使用remove()你的方法从列表中删除所需的项目ArrayAdapter.
可能的方法是:
Object toRemove = arrayAdapter.getItem([POSITION]);
arrayAdapter.remove(toRemove);
Run Code Online (Sandbox Code Playgroud)
另一种方法是修改ArrayList和调用notifyDataSetChanged()上ArrayAdapter.
arrayList.remove([INDEX]);
arrayAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
这对我有用.希望它可以帮助某人.:)
SimpleAdapter adapter = (SimpleAdapter) getListAdapter();
this.resultsList.remove((int) info.id);
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106549 次 |
| 最近记录: |