Ich habe eine einfache Listview (RecyclerView), wo jedes Listenelement ein Kontrollkästchen hat. Alle Elemente, die überprüft werden, sollten mit diesem Code gelöscht werden:
%Vor%Aber aus irgendeinem Grund nicht. Wenn 10 Elemente aktiviert sind, werden nur 7 von ihnen gelöscht und ich muss den Code erneut ausführen, um den Rest zu löschen.
Der Code scheint in Ordnung zu sein, aber ich verstehe wirklich nicht, warum er nicht alle überprüften oder all das (isBought == 1)
Ich habe eine einfache Listview (RecyclerView), wo jedes Listenelement ein Kontrollkästchen hat. Alle Elemente, die überprüft werden, sollten mit diesem Code gelöscht werden:
%Vor%Aber aus irgendeinem Grund nicht. Wenn 10 Elemente aktiviert sind, werden nur 7 von ihnen gelöscht und ich muss den Code erneut ausführen, um den Rest zu löschen.
Der Code scheint in Ordnung zu sein, aber ich verstehe wirklich nicht, warum er nicht alle überprüften oder all das %code%
löschtKehre die Schleife um!
%Vor%Wenn Sie nicht beabsichtigen, die gesamte ArrayList zu löschen, müssen Sie sich keine Sorgen machen, da sich die Größe der Änderungen nicht auf den Rest der Tests auswirkt.
entfernen (indexieren) nicht nur lösche das Objekt, verschiebe aber alle verbleibenden Objekte, um die Lücke zu schließen. Sie müssen vom Ende der Liste zum Anfang iterieren
%Vor%Zusätzlich zu den oben genannten Möglichkeiten können Sie dies auch in aufsteigender Reihenfolge tun:
%Vor%Es gibt eine weitere einfache Alternative, wenn Sie Java 8 verwenden:
%Vor%Referenz: Ссылка
Kehre die Schleife um!
%Vor%Wenn Sie nicht beabsichtigen, die gesamte ArrayList zu löschen, müssen Sie sich keine Sorgen machen, da sich die Größe der Änderungen nicht auf den Rest der Tests auswirkt.