Android - Copy and Drop

 
Vista:
Imágen de perfil de Francisco

Copy and Drop

Publicado por Francisco (12 intervenciones) el 11/09/2016 19:25:36
Lo normal es la instrucción Drag and Drop, con la que el contenido de un TextView consigo trasladarlo a otro sin problema. Sin embargo, para mi aplicación necesito, no trasladarlo, sino copiarlo, es decir, que el texto del primer TextView permanezca invariable. Por más que lo que leído, intentado y buscado, no lo consigo. Podría alguien darme una pista.
Muchas gracias de antemano. Y pongo a continuación el código java por si alguien quiere echarle un vistazo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.myimage1).setOnTouchListener(new MyTouchListener());
        findViewById(R.id.myimage2).setOnTouchListener(new MyTouchListener());
        findViewById(R.id.myimage3).setOnTouchListener(new MyTouchListener());
        findViewById(R.id.myimage4).setOnTouchListener(new MyTouchListener());
MyTouchListener());
        findViewById(R.id.a).setOnDragListener(new MyDragListener());
        findViewById(R.id.b).setOnDragListener(new MyDragListener());
        findViewById(R.id.c).setOnDragListener(new MyDragListener());
        findViewById(R.id.d).setOnDragListener(new MyDragListener());
    }
 
    private final class MyTouchListener implements OnTouchListener {
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                ClipData data = ClipData.newPlainText("", "");
                DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
                view.startDrag(data, shadowBuilder, view, 0);
                return true;
            } else {
                return false;
            }
        }
    }
 
    class MyDragListener implements OnDragListener {
 
        @Override
        public boolean onDrag(View v, DragEvent event) {
            int action = event.getAction();
            switch (action) {
                case DragEvent.ACTION_DRAG_STARTED:
                    // do nothing
                    break;
                case DragEvent.ACTION_DRAG_ENTERED:
                    // …
                    break;
                case DragEvent.ACTION_DRAG_EXITED:
                    // …
                    break;
                case DragEvent.ACTION_DROP:
                    View view = (View) event.getLocalState();
                    ViewGroup owner = (ViewGroup) view.getParent();
                    owner.removeView(view);
                    LinearLayout container = (LinearLayout) v;
                    container.addView(view);
                    view.setVisibility(View.VISIBLE);
                    ClipData.Item item = event.getClipData().getItemAt(0);
                    break;
                case DragEvent.ACTION_DRAG_ENDED:
                    //  …
                default:
                    break;
            }
            return true;
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco

Copy and Drop

Publicado por Francisco (12 intervenciones) el 20/09/2016 23:02:32
Siento que después de mucho esperar nadie haya dado respuesta a mi problema. Vuelvo a hacer una llamada por si alguien se anima a salir de mi atolladero. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar