да 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{}
}
Я поймал исключение только для целей отладки. Спасибо заранее, но, пожалуйста, помогите, потому что я застрял в этой части с последних двух дней.