我有一个值列表。我想删除列表项时复选框未点击:从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