我有一個simple_list_item_multiple_choice listview在我的佈局,我想從中刪除所有選定的項目。我知道如何刪除它,但我有在刪除項目的兩個主要問題: -在Android中刪除ListView中的項目時遇到IndexOutOfBoundException?
我的程序是不是刪除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{}
}
我捕捉到的異常僅用於調試的目的。提前致謝,但請幫助,因爲我從最後兩天卡住了這部分。
應該是I <大小我想 – m0s 2011-04-01 07:15:47
@ M0S我想,也是,我甚至試圖I = 1,大小+ 1,-1大小或每一個可能的變化可能被製成循環。還是行不通。例外仍然存在。 :( – Varundroid 2011-04-01 07:18:17
你應該檢查是什麼導致異常,list.remove(...)或checkedPositions.valueAt(...)。它不是很清楚什麼是列表和如何初始化 – m0s 2011-04-01 07:24:25