Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-以编程方式执行拖放_Java_Android_Drag And Drop - Fatal编程技术网

Java Android-以编程方式执行拖放

Java Android-以编程方式执行拖放,java,android,drag-and-drop,Java,Android,Drag And Drop,我想以编程方式拖动一个视图并将其放在另一个视图上进行初始化,这可能吗 编辑:我正在寻找一种模拟拖放的方法您可以从布局中删除视图,并将其添加到其他布局中(如果您正在寻找) 没有拖放动画,可能会产生奇怪的结果,但这是可能的 视图组将是一个线性布局,相对布局以及其他 对于模拟拖放事件,您可以手动调用onDragListener,但存在一个问题: public boolean onDrag(View v, DragEvent event); 需要一个没有公共构造函数的DragEvent,因此只能使用

我想以编程方式拖动一个视图并将其放在另一个视图上进行初始化,这可能吗


编辑:我正在寻找一种模拟拖放的方法

您可以从布局中删除视图,并将其添加到其他布局中(如果您正在寻找)

没有拖放动画,可能会产生奇怪的结果,但这是可能的

视图组
将是一个
线性布局
相对布局
以及其他


对于模拟拖放事件,您可以手动调用onDragListener,但存在一个问题:

public boolean onDrag(View v, DragEvent event);
需要一个没有公共构造函数的
DragEvent
,因此只能使用
null

也许有一种方法可以通过一个伪造的包裹来创建一个,但那会很难看

private void initializationTest() {
    DragEvent event = null;
    /* maybe sth like that
    Parcel source = Parcel.obtain();
    source.writeInt(1234);
    event  = DragEvent.CREATOR.createFromParcel(source);
    */
    onDrag(theTargetView, event);
}

另一种可能是创建touchevents,但Idk是否可行。至少我可以做到这一点。

非常感谢,出于方便的原因,我一直在寻找第二个答案,因为我的拖放侦听器已经完成了我需要完成的所有工作,我只是不想要太多冗余代码。由于似乎没有一个简单/优雅的解决方案,我可能不得不用另一种方式来做。您可能需要在代码中移动一点(在新方法中需要两次的部分)以使其更优雅,这应该始终有效:)这正是我的想法,也是我最后所做的:)
private void initializationTest() {
    DragEvent event = null;
    /* maybe sth like that
    Parcel source = Parcel.obtain();
    source.writeInt(1234);
    event  = DragEvent.CREATOR.createFromParcel(source);
    */
    onDrag(theTargetView, event);
}