
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:
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


0