我正在尝试从ArrayList删除元素,但是什么也没有发生。

这是针对Android开发课程的-必须通过索引从ArrayList中删除元素。我在删除前后都放了日志,什么也没发生。


    // at the top of MainActivity.java

    ArrayList<String> notes;
    Integer bigPos;

    // in a dialog box positive button onClick method
    notes.remove(new Integer(bigPos)); // just to force it to execute the integer method
    // bigPos is set to pos in the long click listener before the alert.show is executed. I know from logs that the bigPos and notes are in scope. the code RUNS it just doesn't DO anything... notes is the same after the removal.


我希望输出是带有元素#bigPos的注释ArrayList消失。没有变化发生。

最佳答案

步骤#1:对int使用Integer,而不是bigPos

步骤#2:从您的new Integer()呼叫中删除remove()

就目前而言,我认为您正在尝试删除其值是String的字符串表示形式的bigPosremove()有两个变体:


remove(int)按索引删除
remove(Object)按值删除


如果出于某些原因您确实真的想对Integer使用bigPos,则将remove(new Integer(bigPos))替换为remove(bigPos.intValue())

09-27 23:06