2010-12-30 4 views
4

사용자가 하나의 목록보기에서 텍스트 뷰를 드래그 한 다음 다른 목록 뷰로 끌어다 놓을 수 있도록 노력하고 있습니다. 매우 어렵다는 것을 알고 있습니다.
지금까지 발견 한 가장 큰 문제는 onTouchEvents가 ACTION_DOWN 이벤트가 시작된보기에서만 들리는 것 같습니다. 하나의 목록에서 클릭하고 ACTION_DOWN을 들었습니다. 그런 다음 목록 밖으로 드래그하여 다른 목록을 보겠습니다. 그러나 onTouchEvent는 원래 목록에 대해서만 호출됩니다. 어디를 가든 상관 없습니다. 수신 목록에서 ACTION_UP 이벤트를 수신하는 것만 큼 간단하다고 생각했습니다. 그러나 그것이 내가 그 밖에 있다고해도 그것은 원래의 목록에서 호출됩니다.안드로이드에서 목록간에 드래그 앤 드롭을 구현하는 방법은 무엇입니까?

내가 지금까지 가지고있는 것은 좀 지저분합니다. onLongTouchEvent가 호출되면 목록에서 주 활동에 draggableTextView (moveTo 메소드가 있음)를 드래그하기 시작합니다. move 이벤트는 원래 목록에서 계속 호출되므로이 draggableTextView의 위치를 ​​계속 설정합니다. 그러나 나는 다른 목록에 그것을 삽입 할 수 없다. 왜냐하면 내가 무엇을 맨 위에 놓을 지 알 수 없기 때문이다.

+0

왜 동일한 활동 /보기에 2 개의 목록보기가 있습니까? – Falmarri

+0

AOSP 실행기 앱이 다른보기에서 드래그 앤 드롭으로 작동하는 방식을 살펴 보는 것이 도움이 될 수 있습니다. 출처는 http://android.git.kernel.org/?p=platform/packages/apps/Launcher2.git;a=tree;f=src/com/android/launcher2;h=c7c52ec9047f7d4dff5388c3cad4fec12414bd57;hb=입니다. HEAD – adamp

+0

이것은 전화가 아닌 안드로이드 패드 용입니다. 나는 패드 용 에뮬레이터가 없으므로 전화상의 하나의 활동에서 두 개의 목록을 사용하여 즉석으로 진행합니다. – phailhaus

답변

0

네, 맞습니다. 쉬운 일이 아닙니다. 그러나 가능합니다. 예를 들어 commonsguy의 cwac-touchlist 예를 확인하십시오.

+2

참고로 'TouchListView'는 목록간에 작동하지 않습니다. 이는 단순히 목록 내의 항목을 주문하기위한 것입니다. 그것에 대한 코드는 AOSP의 뮤직 앱에서 추려 냈으며, 솔직히 나는 대부분을 이해하지 못합니다. 목록 내에서 드래그 앤 드롭은 인기있는 요청이었고 그 코드를 추출하여 다소 재사용 할 수있는 시간을 가졌습니다. 그래도 드래그 앤 드롭하는 방법에 대한 좋은 예라고 생각하지 않습니다. – CommonsWare

+0

@CommonsWare, 네 말이 맞아 - 내 오해. 그것은 머무르는 것이 쉬울 것이고 한 목록 내에서 (활동 /보기에서) 끌어서 놓기 만 할 것입니다. – StanislavK

관련 문제