2010-12-30 27 views
4

私は、ユーザーが1つのリストビューからテキストビューをドラッグして別のリストビューにドロップできるようにしようとしており、非常に難しいと思っています。
私が今までに見つけた最大の問題は、onTouchEventsがACTION_DOWNイベントが発生したビューでのみ聞こえるように思えることです。私は1つのリストをクリックし、そこにACTION_DOWNが入っています。それから私はリストの外にドラッグし、別のリストを上に行く。しかし、onTouchEventはどこに行っても元のリストに対してのみ呼び出されます。私はそれが受信リストのACTION_UPイベントを聞くのと同じように簡単になるだろうと思った。しかし、それは私が外にいるにもかかわらず元のリストで呼ばれています。アンドロイドのリスト間でドラッグ&ドロップを実装する方法は?

私がこれまでに持っていたことはちょっと乱雑です。 onLongTouchEventが呼び出されると、リストは主アクティビティにdraggableTextView(moveToメソッドを持つ)のドラッグを開始するように指示します。移動イベントは元のリストで引き続き呼び出されるので、このdraggableTextViewの位置を絶えず設定しています。しかし、私は別のリストに挿入することはできません。なぜなら、私が何を上に置いているのか分からないからです。

+0

同じアクティビティ/ビューに2つのリストビューがあるのはなぜですか? – Falmarri

+0

AOSP Launcherアプリがドラッグ&ドロップでどのように動作するかを見てみましょう。ソースは次のとおりです:http://android.git.kernel.org/?p=platform/packages/apps/Launcher2.git;a=tree;f=src/com/android/launcher2;h=c7c52ec9047f7d4dff5388c3cad4fec12414bd57;hb= HEAD – adamp

+0

これは電話のためではなく、アンドロイドパッドのためのものです。私はパッドのエミュレータを持っていないので、私は電話で1つのアクティビティで2つのリストを使用して即興を行っています。 – phailhaus

答えて

0

はい、そうですが、これは簡単な作業ではありません。しかし可能です:あなたはcommonsguyのcwac-touchlistの例をチェックするかもしれません。

+2

FYIとして、「TouchListView」はリスト間では機能しません。これは単にリスト内のアイテムを注文するためのものです。そのコードはAOSPのミュージックアプリから抜粋されていますが、率直に言って、私はそのほとんどを理解していません。リスト内のドラッグ・アンド・ドロップは一般的な要求であり、私はそのコードを取り除き、いくらか再利用できるようにしました。私はそれがドラッグアンドドロップを行う方法の良い例であるかどうかは分かりません。 – CommonsWare

+0

@コンモンウェア、あなたは正しい - 私の誤解。滞在しやすく、1つのリスト(アクティビティ/ビュー内)内でのみドラッグアンドドロップできます。 – StanislavK

関連する問題