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