miércoles, 13 de febrero de 2013

Recuperar el nombre del recurso de la imagen seleccionada usando el atributo "Tag"

Si queremos mostrar en un Toast, o en otro control , el nombre de la imagen sobre la que hacemos "click" de un control Gallery podemos apoyarnos en el atributo Tag del control ImageView.

1º paso: establecer el "tag" en los imageView de la Gallery.

Lo primero que debemos hacer es establecer el valor del atributo Tag en el momento de asociar las imágenes al control Gallery (en el getView del adaptador).


En este fragmento de código, obtenemos primero el nombre del recurso y lo almacenamos en la variable "tag". 

Para ello usamos el método getResourceEntryName() pasándole como atributo el identificador de recurso de la imagen (en el ejemplo está almacenado en un array de imagenes, pero sería lo correspondiente a R.drawable.id_del_recurso).

Una vez que tenemos el nombre del recurso en la variable "tag", lo establecemos en el ImageView correspondiente usando el método setTag().


2º paso: recuperar el valor almacenado en el "tag" de la imagen seleccionada

Ahora, vamos al método donde se captura el evento "click" sobre la imagen de la Galería.


En este fragmento de código nos situamos en el método onItemClick(). Aquí recibiremos el ImageView "clickado" en el parámetro "v". Sobre este parámetro solo tenemos que lanzar el método getTag() y aplicarle una conversión al tipo String para obtener el nombre del recurso almacenado previamente en el primer paso.


2 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Buen día
    Mi problema es muy similar, tengo un ListView que llené con imágenes, lo que quiero es obtener el nombre de la imagen o ruta de una imagen especifica. Además de este ejemplo no entiendo que es this.myContext donde se declara myContext??

    ResponderEliminar