да SteD, у меня ошибка в этой строке, потому что keyAt () возвращает размер () - 1 индекс, и это может быть проблемой в моем коде, но я не знаю, как удалить эту ошибку. Любое решение?

я есть такойsimple_list_item_multiple_choice listview в моем макете, и я пытаюсь удалить все выбранные элементы из него. Я знаю, как удалить его, но у меня возникли две основные проблемы при удалении элементов: -

Моя программа не удаляет более 2 элементов, например, если я выбрал 4 элемента, удаляются только 2, а иногда даже удаляются неправильные элементы.

Когда я отладил свой код, я нашел массивIndexOutOfBoundException в моем коде и, насколько я знаю, в моем коде нет исключений, подобных этому, и все это из-за удаления неправильных или меньших элементов.

вот мой код: -

public void onClick(View view)
{
    SparseBooleanArray checkedPositions = new SparseBooleanArray();
    checkedPositions.clear();
    checkedPositions = lv.getCheckedItemPositions();
    int size = checkedPositions.size();
    if(size != 0)
    {
        try
        {
        for(int i = 0; i < size; i++)
        {
            if(checkedPositions.valueAt(i))
            {
                list.remove(checkedPositions.keyAt(i));
                notes.notifyDataSetChanged();
                lv.setItemChecked(i,false);
            }
        }}catch (IndexOutOfBoundsException ie)
        {}
    }
        else{}
}

Я поймал исключение только для целей отладки. Спасибо заранее, но, пожалуйста, помогите, потому что я застрял в этой части с последних двух дней.

Ответы на вопрос(3)

Ваш ответ на вопрос