代码如下所示:
array = delListView.getCheckedItemPositions();
items = new ArrayList<String>();
delBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
for(int i = 0; i < array.size(); i++)
{
int pos = array.keyAt(i);
if (array.valueAt(i))
{
items.add(deleteAdapter.getItem(pos));
}
Log.e("selected", items.get(pos));
}
在活动中,如果我检查一个项目然后取消选中它并检查另一个项目,我会收到以下错误:
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 at java.util.ArrayList.throwIndexOutofBoundsException(ArrayList.java:255)
最终我要将结果列表传递给另一个活动。 我该怎么办?
答案 0 :(得分:0)
Log.e("selected", items.get(pos));
items
在pos
有一个元素,您有什么保证?从我在代码中看到的内容来看,items
是空的。
答案 1 :(得分:0)
我认为因为你的情况:
if (array.valueAt(i))
{
items.add(deleteAdapter.getItem(pos));
}
因为你的if条件,如果array.valueAt(i)没有返回true,则不会将值添加到Arraylist项。当你试图通过Log.e(“selected”,items.get(pos))获取该指数的值时;这是崩溃的应用程序。