程序中的ArrayList 用来deletedPositions。我把值传递到arrayList 中,在这之前我检查值是否出现在那个数组中。如果存在,就把值删除,如果不存在,就在array List 中添加值。 如何实现这个功能?
我用的下面的代码,但是没有获得答案,请大家帮忙看下!
if(deletedPositions.isEmpty())
{
deletedPositions.add(PositionChecked);
Toast.makeText(getApplicationContext(), "Is empty ="+this.deletedPositions.size(), 1).show();
}
else
{
for(int i=0;i<deletedPositions.size();i++)
{
if(deletedPositions.get(i) == PositionChecked)
{
deletedPositions.remove(i);
Toast.makeText(getApplicationContext(), "After removeArray ="+this.deletedPositions, 1).show();
}
else
{
deletedPositions.add(PositionChecked);
Toast.makeText(getApplicationContext(), "After Added Array ="+this.deletedPositions, 1).show();
}
}
}
你应该使用 arraylist.contains 方法来检查元素是否已经出现在 arraylist。
不要用一个for循环来贯穿整个arraylist,使用下面的代码:
if(deletedPositions.contains(PositionChecked)) {
int numIndex = deletedPositions.indexOf(PositionChecked)
deletedPositions.remove(numIndex);
}
else {
deletedPositions.add(PositionChecked);
}