我创建了一些ArrayList,让我们说5个元素。每个元素都是一些对象,比如Recipe
,其中包含有关指定的position
中每个显示行的一些信息。我试图完成的是从ArrayList中删除指定的position
元素,只使用屏幕上元素的那个位置,然后notifyItemRemoved(position)
。这是我的Java代码:Android Adapter "java.lang.IndexOutOfBoundsException: Invalid index 4, size is 4"Java ArrayList - 在Android中的Position中删除元素异常
,比如我有显示:
[Row 0] Position 0
[Row 1] Position 1
[Row 2] Position 2
[Row 3] Position 3
[Row 4] Position 4
我最初ArrayList
是这样的:[0, 1, 2, 3, 4]
当我删除这样的内容:
POSITION = 4
list.remove(POSITION);
notifyItemRemoved(POSITION);
删除后
[Row 0] Position 0
[Row 1] Position 1
[Row 2] Position 2
[Row 3] Position 3
ArrayList
是这样的:[0, 1, 2, 3]
当删除POSITION = 3
我:
[Row 0] Position 0
[Row 1] Position 1
[Row 2] Position 2
ArrayList
是这样的:[0, 1, 2]
所以一切是删除的元素的细原因POSITION
相同的ArrayList
的位置。
但是,当我做删除一些不同的元素f.e.POSITION = 2
在开始时,我有:
[Row 0] Position 0
[Row 1] Position 1
[Row 3] Position 3
[Row 4] Position 4
ArrayList
是这样的:[0, 1, 3, 4]
当我现在想取消勒特f.e POSITION = 3
我得到的是这样的:
[Row 0] Position 0
[Row 1] Position 1
[Row 3] Position 3
ArrayList
是这样的:[0, 1, 3]
- 这就是我想要删除后删除元素。
的另一件事是,当我尝试删除最后一个元素与列表 - POSITION 4
(在开始时我删除在POSITION = 2
元素):
[Row 0] Position 0
[Row 1] Position 1
[Row 3] Position 3
[Row 4] Position 4
我收到错误:java.lang.IndexOutOfBoundsException: Invalid index 4, size is 4
。
我如何设法删除像这样的元素只有位置?这是否可以用ArrayList来做到这一点?