example ejemplo drop and android drag-and-drop clip

ejemplo - Android arrastrar y soltar getClipData devuelve siempre nulo



drag and drop list android example (2)

Estoy diseñando una operación de arrastrar y soltar, pero no sé cómo acceder a mis datos. ¿Alguien ha experimentado con objetos Clip Data? Aquí está mi código:

Comenzando el arrastrar y soltar:

ClipData dragData= ClipData.newPlainText("my", "test") ); v.startDrag(dragData, new MyDragShadowBuilder(v), v, 0);

Escuchando sobre los eventos:

case DragEvent.ACTION_DROP:{ if (event.getClipDescription().getLabel().equals("my")) Log.d("myLog","Data:"+event.getClipData()+" "+event.getClipData().getItemCount());


Antes de comenzar, arrastre algunos datos del clip usando el siguiente código

ClipData.Item item = new ClipData.Item((CharSequence) v.getTag()); String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN}; ClipData dragData = new ClipData(v.getTag().toString(), mimeTypes, item);

Y luego, después de comenzar a arrastrar con v.startDrag(......); en el caso de que DragEvent.ACTION_DROP tenga que capturar los datos del clip usando el siguiente código

String clipData = event.getClipDescription().getLabel().toString()

Una vez que tienes el clipData puedes jugar. Esto no me devolvió la nulidad, lo veré en su extremo.


no en cada evento de arrastre puede obtener los datos del clip, pero algunos de ellos, como el tipo ACTION_DROP

dropableCanvas.setOnDragListener(new OnDragListener() { @Override public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: return true; case DragEvent.ACTION_DROP: ClipData clipData = event.getClipData(); //... return true; default: return false; } }