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;
}
}