我已经在我的应用程序中实现了具有拖放功能的recyclerView。一切正常,直到重新启动该应用程序为止-该应用程序未保存/记住任何拖放更改。
我尝试过:
np.all
我当前的代码如下:
在onCreate中
ItemViewModel itemViewModel = ViewModelProviders.of(this).get(ItemViewModel.class);
itemViewModel.getAllItems().observe(this, new Observer<List<Item>>() {
@Override
public void onChanged(List<Item> items) {
adapter.setItemList(items);
itemList = items; //Global variable itemList
}
});
拖动/移动项目时调用的方法
private void swap(int firstPosition, int secondPosition) {
Collections.swap(itemList, firstPosition, secondPosition);
for(int i = 0; i < itemList.size(); i++) {
Item currentItem = itemList.get(i);
ItemViewModel.update(currentItem );
}
adapter.notifyItemMoved(firstPosition, secondPosition);
}
有什么想法可以让我的应用在拖放后保存重新排序的recyclerView?预先感谢。
答案 0 :(得分:0)
如果您希望在关闭应用程序或转到其他活动后保留商品的顺序,则需要在实体文件中添加一个属性,该属性将作为该商品的订单价值。添加完成后,您可以访问dao并在对项目重新排序时使用UPDATE
方法中的Collections.swap
SQL,然后在列表的每次加载时,返回该属性所排序的项目。