更改数组列表中的项目索引

时间:2019-09-02 22:44:53

标签: android arraylist

我有一个带有三个Packagename的List<POJO>。因此,如果我“单击”第二项com.app.2,我希望索引为0。我不想替换它,我只想更改索引。

例如:

(0) com.app.1
(1) com.app.2
(2) com.app.3

点击第二项(从上方)

(0) com.app.2
(1) com.app.1
(2) com.app.3

点击第三项(从上方)

(0) com.app.3
(1) com.app.2
(2) com.app.1

点击第二项(从上方)

(0) com.app.2
(1) com.app.3
(2) com.app.1

好吧,我认为List<POJO>.set(i,Object)会做到这一点,但是它正在执行以下操作:

(0) com.app.1
(1) com.app.2
(2) com.app.3

点击第二项(从上方)

(0) com.app.2
(1) com.app.2
(2) com.app.3

所以它正在替换项目,那不是我想要的。

1 个答案:

答案 0 :(得分:0)

尝试将remove(int)add(int, E)组合在一起:

POJO tmp = list.remove(i); // the clicked index
list.add(0, tmp);

在这种情况下,一切都可以正常运行。但是,如果要添加到0以外的位置,则必须记住,列表中被删除的项目之后的所有内容都会“向上滑动”一个位置。