Android SparseBooleanArray和2个arraylist,未从arraylist中删除项
我有一个listview,可以从中删除所选项目,我是通过SparseBooleanArray执行此操作的 但是,当我删除所选项目时,我还希望将它们从其他两个arraylist(trackedItems,dateWatchList)的该位置删除,但在dateWatchListarraylist中始终有一个项目未被删除 我已经检查了几个线程,但我不能得到这个权利 如果有人能帮忙就好了 代码块:Android SparseBooleanArray和2个arraylist,未从arraylist中删除项,android,listview,arraylist,Android,Listview,Arraylist,我有一个listview,可以从中删除所选项目,我是通过SparseBooleanArray执行此操作的 但是,当我删除所选项目时,我还希望将它们从其他两个arraylist(trackedItems,dateWatchList)的该位置删除,但在dateWatchListarraylist中始终有一个项目未被删除 我已经检查了几个线程,但我不能得到这个权利 如果有人能帮忙就好了 代码块: ... SparseBooleanArray checkedItems = lv.getCheckedIt
...
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
for (int i = 0; i < adapter.getCount(); i++) {
if (checkedItems.get(i)) {
// This item is checked and can be removed
trackedItems.remove(i);
dateWatchList.remove(i); // 1 item always remains and is NOT removed?
adapter.remove(adapter.getItem(i));
}
}
checkedItems.clear();
adapter.notifyDataSetChanged();
...
。。。
SparseBooleanArray checkedItems=lv.getCheckedItemPositions();
对于(inti=0;i
我自己解决了这个问题,对于有同样问题的人,这里是我的工作代码:
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
for (int i = checkedItems.size()-1; i >= 0; i--) {
String selecteditem = adapter.getItem(checkedItems.keyAt(i));
String currentName = trackedItems.get(checkedItems.keyAt(i));
long currentDate = dateWatchList.get(checkedItems.keyAt(i));
if (checkedItems.get(checkedItems.keyAt(i))) {
adapter.remove(selecteditem);
trackedItems.remove(currentName);
dateWatchList.remove(currentDate);
}
}
checkedItems.clear();
adapter.notifyDataSetChanged();