0

我正在尝试创建一个已经具有索引捕获并且只需要从ArrayList<String>and中删除的按钮ArrayList<Integer>。整数列表可以很好地删除索引,但字符串数组不会。下面的代码:

Globals:
ArrayList<String> QandItem = new ArrayList<String>();
ArrayList<Integer> Prices = new ArrayList<Integer>();
ArrayAdapter<String> left;
ArrayAdapter<Integer> right;

这些是在 on create 方法中设置和填写的。我知道它们工作正常,因为我在设备上查看它们时会得到输出。

RemoveItem.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // TODO
        if(i >= 0){
            QandItem.remove(i);
            Prices.remove(i);
            left.notifyDataSetChanged();
            right.notifyDataSetChanged();
            ItemList.setAdapter(left);
            PriceList.setAdapter(right);
        }
    }
});

i我要删除的索引在哪里。

4

2 回答 2

4

由于 i 是一个Integer,因此您试图删除对象i而不是位置 i 处的元素。尝试i.intValue()改用。查看ArrayList.remove(int index)ArrayList.remove(Object o)之间的区别。

于 2012-06-30T16:07:50.470 回答
1

如果 i 是 anInteger而不是intoriginal ,正如 Keppil 所问的那样,QandItem.remove(i)它将尝试删除它不持有的对象。试试这个:

QandItem.remove(i.intValue())
于 2012-06-30T16:09:09.973 回答