@Override
    public void remove(int which) {
        int cursorPos = mListMapping.get(which, which);
        if (!mRemovedCursorPositions.contains(cursorPos)) {
            mRemovedCursorPositions.add(cursorPos);
        }

        int newCount = getCount();
        for (int i = which; i < newCount; ++i) {
            mListMapping.put(i, mListMapping.get(i + 1, i + 1));
        }

        mListMapping.delete(newCount);

        cleanMapping();
        notifyDataSetChanged();
    }
On remove, this updates the mapping between Cursor positions
and ListView positions. The Cursor is unchanged. Retrieve
the current mapping with {@link getCursorPositions()}.

@see DragSortListView.RemoveListener#remove(int)
third_party/DragSortListView/src/com/mobeta/android/dslv/DragSortCursorAdapter.java