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

标签 android android-listview drag-and-drop

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

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

fragment :

    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的赋值。

关于Android ListViewAnimations - 无法在 DynamicListView 中交换项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29328748/

相关文章:

java - 如何在 Java 中使用 SoundCloud API(Android 应用程序)

Android 以编程方式进行调用而不显示选择器

java - 蓝牙回调函数 onCharacteristicRead 没有对使用 <API 21 的另一个 Activity 进行 Intent 调用。不在 Marshmallow 中

html - KineticJS 和 HTML5 - 拖动不起作用

android - 无法转换为 android.widget.RelativeLayout

jquery-ui - jQuery Draggable 和溢出问题

android - 如何使用 MPAndroid 绘制平滑的折线图,避免三次贝塞尔曲线出现错误值?

android - 根据内容对 ListView 中的相似行进行分组

java - 在 ListView android 的底部显示最新项目

java - 根据位置在ListView中膨胀自定义View