2013-01-12 2 views
1

테스트 목적으로 DragEvent을 시뮬레이트해야합니다. 그러나 DragEvent.obtain() 메소드에 액세스 할 수 없습니다.안드로이드에서 DragEvent를 생성하는 방법

터치 MotionEvent를 들어 DragListener

simulate DragEvent) 내가 onDrag (에있는 DragEvent에 대한 작업을 정의 할 수 있도록 방법을 방법을 제안하십시오, 우리는 MotionEvent.obtain() 및 전달 관련 매개 변수에 의해 그렇게 그러나이 작업을 수행 할 수 메서드는 DragEvent의 경우에 액세스 할 수 없습니다.

답변

2

DragEvent.obtain()는@hide 주석으로 본 아직 노출되지 않은 내부의 API 함수이다.

는 wayaround으로, 당신은 당신이 Clipdata을 추가 할 경우, parcelable 객체 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); 

에서하고있는 DragEvent을 만들 수는 createFromParcel() 메소드입니다 볼 수 있습니다.

+0

더 설명해 주실 수 있습니까?) 나는 또한 DragEvent를 프로그래밍 방식으로 구현해야합니다. – madu

0

여기 안드로이드에 DragEvent을 구현하는 데 도움이 될 아주 멋진 자습서를 제공합니다. 이를 참조하여 테스트 목적으로 구현할 수 있습니다.

수정 됨 링크 :
1) Link1
2) Link2
3) Developer Site for Drag Event

은 당신을 도울 것입니다 바랍니다.

감사합니다.

+0

감사합니다. Grishu. 그러나이 모든 링크는 DragDrop API를 사용하는 것에 대해서만 설명합니다. DragListener의 OnDrag 메서드를 살펴보면 DragEvent 매개 변수를 사용할 수 있습니다. 안드로이드를 터치하면이 DragEvent가 생성되고 액션이 정의됩니다. 그러나 요구 사항으로, 나는 그것을 직접 만들어야합니다. 더 명확하게 제 질문을 업데이트했습니다. – Anirudh

+0

안녕하세요 귀하의 요구 사항에 따라 내 대답을 변경했습니다 체크 아웃하십시오. 질문을 삭제 해 주셔서 감사합니다. – GrIsHu

+0

감사합니다 Grishu,하지만이 질문에 대답하지 않습니다. listView.dispatchDragEvent (DragEvent dragEvent)에서 전달할 DragEvent를 만들어야합니다. 이 dragEvent 파라미터의 생성 방법입니다. – Anirudh

관련 문제