从listview中选择元素

时间:2014-07-09 16:34:47

标签: android

代码如下所示:

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)

最终我要将结果列表传递给另一个活动。 我该怎么办?

2 个答案:

答案 0 :(得分:0)

很可能,它来自您的调试行,

Log.e("selected", items.get(pos));

itemspos有一个元素,您有什么保证?从我在代码中看到的内容来看,items是空的。

答案 1 :(得分:0)

我认为因为你的情况:

if (array.valueAt(i))
{
   items.add(deleteAdapter.getItem(pos));                     
}  

因为你的if条件,如果array.valueAt(i)没有返回true,则不会将值添加到Arraylist项。当你试图通过Log.e(“selected”,items.get(pos))获取该指数的值时;这是崩溃的应用程序。