Android ListViewAnimations-无法在DynamicListView中交换项目

Android ListViewAnimations-无法在DynamicListView中交换项目,android,android-listview,drag-and-drop,Android,Android Listview,Drag And Drop,我正在使用DynamicListView中的拖放功能来重新排列列表中项目的顺序 它工作正常,只是与列表中的下一个项目交换不起作用。我只能将项目拖动到至少两个位置,例如从位置1拖动到位置3,但不能从位置1拖动到位置2 片段: mDynamicListView.enableDragAndDrop(); mDynamicListView.setDraggableManager(new TouchViewDraggableManager(R.id.icon)); 适配器 @Overri

我正在使用DynamicListView中的拖放功能来重新排列列表中项目的顺序

它工作正常,只是与列表中的下一个项目交换不起作用。我只能将项目拖动到至少两个位置,例如从位置1拖动到位置3,但不能从位置1拖动到位置2

片段:

    mDynamicListView.enableDragAndDrop();
    mDynamicListView.setDraggableManager(new TouchViewDraggableManager(R.id.icon));
适配器

@Override
public void swapItems(final int positionOne, final int positionTwo) {
    HMObject firstItem = objects.set(positionOne, getItem(positionTwo));
    notifyDataSetChanged();
    objects.set(positionTwo, firstItem);
}

我在这里做错了什么吗?

使用您的示例代码,我建议:

public void swapItems(final int positionOne, final int positionTwo) {
   HMObject firstItem = getItem(positionOne);

   objects.set(positionOne, getItem(positionTwo));
   objects.set(positionTwo, firstItem);

   notifyDataSetChanged();

注:主要区别在于
firstItem

的分配,我给出了答案。这是我第一次使用DynamicListView。在Listview布局中是否使用多个UI元素?enableDragAndDrop()来自何处?override swapItems()是在哪里定义的?DynamicListView是ListViewAnimations库的一部分: