我正在尝试创建一个已经有索引捕获的按钮,只需要从ArrayList<String>
和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
是我要删除的索引。
答案 0 :(得分:4)
由于我是Integer
,您尝试删除对象i
而不是位置i处的元素。请尝试使用i.intValue()
。
查看ArrayList.remove(int index)和ArrayList.remove(Object o)之间的区别。
答案 1 :(得分:1)
如果我是Integer
而不是原始int
,正如Keppil所问,QandItem.remove(i)
将尝试删除它不存在的对象。试试这个:
QandItem.remove(i.intValue())