程序中的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);
}