簡體   English   中英

如何在一個函數或類中為拖放中的多個組件處理多個放置?

[英]How to Handle Multiple drops for multiple components in drag and drop ;in one function or class?

我有5個浮動按鈕,每個按鈕有5個監聽器。 我正在尋找一種方法來在一個類或函數中實現所有這5個偵聽器。請幫助我如何做到這一點。我希望將所有drop合並到一個類中時能正常工作

這是示例:

imageView1.setOnDragListener(new View.OnDragListener()
{
    @Override
    public boolean onDrag(View v, DragEvent event)
    {
        switch (event.getAction())
        {
            case DragEvent.ACTION_DRAG_STARTED:
            {
                Log.e("DRaG1","START");
                return true;
            }
            case DragEvent.ACTION_DRAG_ENDED:
            {
                Log.e("DRaG1","ENDED");
                return true;
            }
            case DragEvent.ACTION_DRAG_ENTERED:
            {
                Log.e("DRaG1","ETER");
                return true;
            }
            case DragEvent.ACTION_DRAG_EXITED:
            {
                Log.e("DRaG1","EXIT");
                return true;
            }
            case DragEvent.ACTION_DROP:
            {
                Log.e("DRaG1","DROP");
                return true;
            }
        }
        return  false;
    }
});





    imageView2.setOnDragListener(new View.OnDragListener()
    {
        @Override
        public boolean onDrag(View v, DragEvent event)
        {

            switch (event.getAction())
            {
                case DragEvent.ACTION_DRAG_STARTED:
                {
                    Log.e("DRaG2","START");
                    return true;
                }
                case DragEvent.ACTION_DRAG_ENDED:
                {
                    Log.e("DRaG2","ENDED");
                    return true;
                }
                case DragEvent.ACTION_DRAG_ENTERED:
                {
                    Log.e("DRaG2","ETER");
                    return true;
                }
                case DragEvent.ACTION_DRAG_EXITED:
                {
                    Log.e("DRaG2","EXIT");
                    return true;
                }
                case DragEvent.ACTION_DROP:
                {
                    Log.e("DRaG2","DROP");
                    return true;
                }
            }

            return false;
        }
    });

我自己編寫的代碼是在Main Activity中執行的: imageView1.setOnDragListener(dragListener); imageView2.setOnDragListener(dragListener); imageView1.setOnDragListener(dragListener); imageView2.setOnDragListener(dragListener);

為Drag Listenrer創建一個類並調用它:

public class DragListener extends Activity implements View.OnDragListener {

@Override
public boolean onDrag(View v, DragEvent event)
{
    final int action = event.getAction();
    switch (action) {
        case DragEvent.ACTION_DRAG_STARTED: {
            Log.e("DRaG2", "START");
            return true;
        }
        case DragEvent.ACTION_DRAG_ENDED: {
            Log.e("DRaG2", "ENDED");
            return true;
        }
        case DragEvent.ACTION_DRAG_ENTERED: {
            Log.e("DRaG2", "ETER");
            return true;
        }
        case DragEvent.ACTION_DRAG_EXITED: {
            Log.e("DRaG2", "EXIT");
            return true;
        }
        case DragEvent.ACTION_DROP: {
            if (v.getId() == R.id.imageView1)
            {
                ClipData.Item item = event.getClipData().getItemAt(0);
                Log.e("ITEM", item.getText().toString());
                Log.e("DRaG2", String.valueOf(v.getId()));


            }

            else if (v.getId() == R.id.imageView2)
            {
                ClipData.Item item = event.getClipData().getItemAt(0);
                Log.e("ITEM", item.getText().toString());
                Log.e("DRaG2", String.valueOf(v.getId()));
            }

            else if (v.getId() == R.id.imageView3)
            {
                ClipData.Item item = event.getClipData().getItemAt(0);
                Log.e("ITEM", item.getText().toString());
                Log.e("DRaG2", String.valueOf(v.getId()));
            }
            return true;
        }
    }
    return false;
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM