Android SparseBooleanArray和2个arraylist,未从arraylist中删除项

Android SparseBooleanArray和2个arraylist,未从arraylist中删除项,android,listview,arraylist,Android,Listview,Arraylist,我有一个listview,可以从中删除所选项目,我是通过SparseBooleanArray执行此操作的 但是,当我删除所选项目时,我还希望将它们从其他两个arraylist(trackedItems,dateWatchList)的该位置删除,但在dateWatchListarraylist中始终有一个项目未被删除 我已经检查了几个线程,但我不能得到这个权利 如果有人能帮忙就好了 代码块: ... SparseBooleanArray checkedItems = lv.getCheckedIt

我有一个listview,可以从中删除所选项目,我是通过SparseBooleanArray执行此操作的

但是,当我删除所选项目时,我还希望将它们从其他两个arraylist(trackedItems,dateWatchList)的该位置删除,但在dateWatchListarraylist中始终有一个项目未被删除

我已经检查了几个线程,但我不能得到这个权利

如果有人能帮忙就好了

代码块:

...
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();