1

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

请提出一种方法,simulate DragEvent以便我可以在 DragListener 的 onDrag() 方法中定义 DragEvent 的操作

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

4

2 回答 2

2

DragEvent.obtain()是一个尚未公开的内部 API 函数,如@hide注释所示。

作为一种解决方法,您可以从可打包对象http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/view/DragEvent创建一个 DragEvent 。爪哇#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() 方法。

于 2013-01-13T10:32:49.850 回答
0

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

已编辑的链接:
1) Link1
2) Link2
3) Drag Event 的开发者网站

希望它会帮助你。

谢谢。

于 2013-01-12T06:19:00.013 回答