我有一个带有三个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
所以它正在替换项目,那不是我想要的。
答案 0 :(得分:0)
尝试将remove(int)
与add(int, E)
组合在一起:
POJO tmp = list.remove(i); // the clicked index
list.add(0, tmp);
在这种情况下,一切都可以正常运行。但是,如果要添加到0
以外的位置,则必须记住,列表中被删除的项目之后的所有内容都会“向上滑动”一个位置。