0

私は自分のプロジェクトに小さなドラッグアンドドロップシステムを実装しようとしていますが、これまでのところ:

@Override
    public boolean onDrag(View eventView, DragEvent event) {

    final int action = event.getAction();

    switch (action) {

    case DragEvent.ACTION_DRAG_STARTED:

        DragAndDropState.itWasDropped = false;

        draggedView = (View) event.getLocalState();

        if (draggedView.getParent() != null) {


            draggedTargetParent = (View) draggedView.getParent();
            DragAndDropState.dragStartPosition = (Integer) draggedTargetParent.getTag();

            Log.i("START draggedView ", draggedView.toString());
            Log.i("START parent: ", draggedTargetParent.toString());

        }



        ((ViewGroup) eventView).removeView((View) event.getLocalState());

        return true;


    case DragEvent.ACTION_DROP: //............... more code

そして、ビューをロングクリックした後、logcat に表示されます。

09-03 14:08:48.236: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.236: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:48.236: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.236: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:48.236: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.236: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:48.236: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.246: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:48.246: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.246: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:48.246: I/START draggedView(12796): hu.fun.views.slot.ItemInSlotView@42ae2ef0
    09-03 14:08:48.246: I/START parent:(12796): hu.fun.views.slot.Slot@42ab7e68
    09-03 14:08:49.137: I/ViewRootImpl(12796): Reporting drop result: true

そうです。1つの View targetで1 つの onLongClick リスナーを使用して、1 つの longclick によってトリガーされる6 つ (6 つ!)の onDragEvents を取得しました。

なぜそれが起こっているのか、なぜそれが良いのか、誰か説明してもらえますか?

私は本当にこれらのうちの1つだけで作業したいと思っています.logcatをこのようなメッセージで溢れさせるのは純粋に迷惑です。私はこのような方法をデバッグすることはできません.

4

0 に答える 0