如何在Android中创建DragEvent

时间:2013-01-12 05:47:16

标签: android drag-and-drop

我需要模拟DragEvent以进行测试。但是,我无法访问DragEvent.obtain()方法。

请建议simulate DragEvent的方法,以便我可以在DragListener的onDrag()方法中为DragEvent定义动作

对于Touch MotionEvent,我们可以通过MotionEvent.obtain()并传递相关参数,但是在DragEvent的情况下无法访问此方法

2 个答案:

答案 0 :(得分:2)

DragEvent.obtain()是一个内部API函数, @hide 注释看不到它。

作为一种解决方法,您可以从parcelable对象创建DragEvent http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/view/DragEvent.java#488

DragEvent.CREATOR.createFromParcel(parcel);
Parcel parcel = Parcel.obtain();
parcel.writeInt(action);
parcel.writeFloat(x);
parcel.writeFloat(y);
parcel.writeInt(0); // Result
parcel.writeInt(0); // No Clipdata
parcel.writeInt(0); // No Clip Description
parcel.setDataPosition(0);

如果要添加Clipdata,请参阅createFromParcel()方法。

答案 1 :(得分:0)

在这里,我将为您提供一些非常好的教程,这些教程将指导在android中实现DragEvent。您可以参考并实施它以用于测试目的。

编辑链接:
1)Link1
2)Link2
3)Developer Site for Drag Event

希望它会对你有所帮助。

感谢。