撤消拖放操作

时间:2014-06-09 08:52:10

标签: android drag-and-drop

我使用android的drag& drop functionallity将一些图像视图移动到另一个图像视图中。这允许根据我投入到命运图像视图中的图像视图进行选择。

但是现在我必须考虑用户在选择时可能会犯错,并且需要某种重置按钮,这会将这些imageview返回到原来的地方并取消拖放。

我一直在阅读Android文档,并在谷歌上寻找这个,但我没有发现任何东西,所以我不知道是否存在这样的功能。

我会发布我的代码,如果有人可以知道如何获得它,但它只是这个功能的标准代码。

首先是Imageviews的一个监听器,当长时间单击它时会启动拖动操作:

private final class MyLongTouchListener implements OnLongClickListener {
    @Override
    public boolean onLongClick(View v) {
        ClipData data = ClipData.newPlainText("", "");
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
        v.startDrag(data, shadowBuilder, v, 0);
        v.setVisibility(View.INVISIBLE);
        return true;
    }
}

然后是命运图像视图中的放置操作的监听器:

class MyDragListener implements OnDragListener {
    @Override
    public boolean onDrag(View v, DragEvent event) {
        int action = event.getAction();
        switch (action) {
            case DragEvent.ACTION_DRAG_STARTED:
                //...
                break;
            case DragEvent.ACTION_DRAG_ENTERED:
                //...
                break;
            case DragEvent.ACTION_DRAG_EXITED:
                //...
                break;
            case DragEvent.ACTION_DROP:
                //...
                break;
            case DragEvent.ACTION_DRAG_ENDED:
                //...
                break;
            default:
                break;
        }
        return true;
    }
}

1 个答案:

答案 0 :(得分:-1)

仍然不知道该功能是否存在,但我找到了获得类似结果的方法。

如果要进行重置,只需执行finish(),然后启动intent即可重新启动活动。

这会让事情处于起步阶段,但在某些情况下可能没用。对我而言。