vendredi 29 janvier 2016

Maintain/Remember Changed items position after restarting app (Using ItemTouchHelper)



Hello, I'm having a problem in remembering items position after being changed, I'm using ItemTouchHelper to achieve the drag and drop effect, after being changed, restarting will reset the changes back to the default.

So, What's the way to maintain the changed positions ?

Here's the code :


HTML Code:


    ItemTouchHelper.Callback _ithCallback = new ItemTouchHelper.Callback() {
    //and in your imlpementaion of
    public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        // get the viewHolder's and target's positions in your adapter data, swap them
        Collections.swap(AllItems, viewHolder.getAdapterPosition(), target.getAdapterPosition());
        // and notify the adapter that its dataset has changed

        rcAdapter.notifyItemMoved(viewHolder.getAdapterPosition(), target.getAdapterPosition());
        return true;
    }

 [MENTION=439709]override[/MENTION]
    public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
        //TODO
    }

    //defines the enabled move directions in each state (idle, swiping, dragging).
 [MENTION=439709]override[/MENTION]
    public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
        return makeFlag(ItemTouchHelper.ACTION_STATE_DRAG,
                ItemTouchHelper.DOWN | ItemTouchHelper.UP | ItemTouchHelper.START | ItemTouchHelper.END);
    }
};



Download from this link

Aucun commentaire:

Enregistrer un commentaire