我有一個值列表。我想刪除列表項時複選框未點擊:從Java ArrayList中刪除項目時收到IndexOutOfBoundsException
ArrayList<SalesRoutes> routeList = new ArrayList<SalesRoutes>();
ArrayList<String> selectedRoutes = new ArrayList<String>();
routeList =getSalesRoute();
for (int i = 0; i < routeList.size(); i++) {
CheckBox ch = new CheckBox(this);
ch.setId(i);
ch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
if(arg0.isChecked()){
Log.i("add", routeList.get(arg0.getId()).getRouteCode());
selectedRoutes.add(routeList.get(arg0.getId()).getRouteCode());
System.out.println("----add ----" + selectedRoutes);
}else {
selectedRoutes.remove(arg0.getId());
Log.i("remove", routeList.get(arg0.getId()).getRouteCode());
System.out.println("----remove ----" + selectedRoutes);
}
}
});
}
在這裏我得到了IndexOutOfBoundsException
因爲selectedRoutes選擇CheckBox值
selectedRoutes
[R0002]
routeList在屏幕上顯示路由的列表。它從數據庫中獲取路由。
例routeList:
Route List
R0001
R0002 // selected this one ID is 1
R0003
調用從selectedRoutes除去(1)。
selectedRoutes.remove(arg0.getId());
這裏selectedRoutes只包含一個記錄,這意味着沒有索引1
如何刪除這個?
'arg0.getId()'在第一個示例中包含'0'而在第二個示例中包含'1'? –
arg0.getId()將返回複選框ID.I有2個arraylist'selectedRoutes'和'routelist' – Piraba
什麼是完整的例外?行號,堆棧跟蹤,錯誤消息,請張貼全部。 – Ishtar