java android gridview drag-and-drop android-launcher

Android/Java-Agregar textView a Tutorial Drag-Drop GridView/Ejemplo



drag-and-drop android-launcher (1)

Bueno, la forma más sencilla de implementar la opción de arrastrar y soltar en la vista de cuadrícula se puede encontrar en este enlace http://www.androidviews.net/2012/12/pageddragdropgrid/

y el git para esto es https://github.com/mrKlar/PagedDragDropGrid

Creé un proyecto basado en algunas clases del siguiente tutorial:

http://blahti.wordpress.com/2012/03/03/improved-drag-drop-for-gridview/

Ahora estoy intentando modificar el ejemplo para poder arrastrar y soltar no solo una imagen, sino también una imagen y una vista de texto al mismo tiempo.

¿Cómo se puede lograr esto?

He instanciado el textView ya:

tx = (TextView) findViewById(R.id.textView1);

Ahora creo que tendré que modificar el método acceptDrop del tutorial (en su clase DropTarget) pero no estoy 100% seguro de cómo hacerlo.

La línea de fondo:

Simplemente necesito averiguar cómo agregar un textView a este sencillo tutorial de arrastrar y soltar en gridView.

La fuente completa se puede ver y descargar aquí

https://docs.google.com/file/d/0B0wYSNCBkoR6MmdWbnktYUpTc2FFakdVU3NYeUxDZw/edit

PD

Dejé un comentario sobre hacer esto en la sección de comentarios del tutorial y el autor mencionó lo siguiente:

"Necesitarás crear una clase personalizada para definir los elementos que van en la vista de cuadrícula. Esa vista mostraría el texto y una imagen. Haz que la nueva clase implemente las interfaces de arrastrar y soltar. En el método acceptDrop copia el texto y la imagen.

Parte del problema que enfrenta es similar a tener un elemento de lista personalizado con una vista de lista. Sería bueno encontrar algunos ejemplos de eso antes de tomar la parte de arrastrar y soltar ".

Simplemente necesito un poco de ayuda para hacerlo ...

DropTarget.java:

/** * Interface defining an object that reacts to objects being dragged over and dropped onto it. * */ public interface DropTarget { /** * Handle an object being dropped on the DropTarget * * @param source DragSource where the drag started * @param x X coordinate of the drop location * @param y Y coordinate of the drop location * @param xOffset Horizontal offset with the object being dragged where the original * touch happened * @param yOffset Vertical offset with the object being dragged where the original * touch happened * @param dragView The DragView that''s being dragged around on screen. * @param dragInfo Data associated with the object being dragged * */ void onDrop(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo); /** * React to something started to be dragged. */ void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo); /** * React to something being dragged over the drop target. */ void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo); /** * React to a drag */ void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo); /** * Check if a drop action can occur at, or near, the requested location. * This may be called repeatedly during a drag, so any calls should return * quickly. * * @param source DragSource where the drag started * @param x X coordinate of the drop location * @param y Y coordinate of the drop location * @param xOffset Horizontal offset with the object being dragged where the * original touch happened * @param yOffset Vertical offset with the object being dragged where the * original touch happened * @param dragView The DragView that''s being dragged around on screen. * @param dragInfo Data associated with the object being dragged * @return True if the drop will be accepted, false otherwise. */ boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo); /** * Estimate the surface area where this object would land if dropped at the * given location. * * @param source DragSource where the drag started * @param x X coordinate of the drop location * @param y Y coordinate of the drop location * @param xOffset Horizontal offset with the object being dragged where the * original touch happened * @param yOffset Vertical offset with the object being dragged where the * original touch happened * @param dragView The DragView that''s being dragged around on screen. * @param dragInfo Data associated with the object being dragged * @param recycle {@link Rect} object to be possibly recycled. * @return Estimated area that would be occupied if object was dropped at * the given location. Should return null if no estimate is found, * or if this target doesn''t provide estimations. */ Rect estimateDropLocation(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo, Rect recycle); // These methods are implemented in Views void getHitRect(Rect outRect); void getLocationOnScreen(int[] loc); int getLeft(); int getTop(); }