domingo, 26 de octubre de 2014

Grids en Android



Tras haber visto en apartados anteriores los dos controles de selección más comunes en cualquier interfaz gráfica, como son las listas desplegables (Spinner) y las listas "fijas" (ListView), tanto en su versión básica como optimizada, en este nuevo apartado vamos a terminar de comentar los controles de selección con otro menos común pero no por ello menos útil, el control GridView.

El control GridView de Android presenta al usuario un conjunto de opciones seleccionables distribuidas de forma tabular, o dicho de otra forma, divididas en filas y columnas. Dada la naturaleza del control ya podéis imaginar sus propiedades más importantes, que paso a enumerar a continuación:


Veamos cómo definiríamos un GridView de ejemplo en nuestra aplicación:


Una vez definida la interfaz de usuario, la forma de asignar los datos desde el código de la aplicación es completamente análoga a la ya comentada tanto para las listas desplegables como para las listas estáticas: creamos un array genérico que contenga nuestros datos de prueba, declaramos un adaptador de tipo ArrayAdapter (como ya comentamos, si los datos proceden de una base de datos lo normal será utilizar un SimpleCursorAdapter, pero de eso nos ocuparemos más adelante en el curso) pasándole en este caso un layout genérico (simple_list_item_1, compuesto por un simple TextView) y asociamos el adaptador al control GridView mediante su método setAdapter():


Por defecto, los datos del array se añadirán al control GridView ordenados por filas, y por supuesto, si no caben todos en la pantalla se podrá hacer scroll sobre la tabla. Vemos en una imagen cómo queda nuestra aplicación de prueba:


En cuanto a los eventos disponibles, el más interesante vuelve a ser el lanzado al seleccionarse una celda determinada de la tabla: onItemClick. Este evento podemos capturarlo de la misma forma que hacíamos con los controles Spinner y ListView. Veamos un ejemplo de cómo hacerlo:


Todo lo comentado hasta el momento se refiere al uso básico del control GridView, pero por supuesto podríamos aplicar de forma prácticamente directa todo lo comentado para las listas en los dos apartados anteriores, es decir, la personalización de las celdas para presentar datos complejos creando nuestro propio adaptador, y las distintas optimizaciones para mejorar el rendimiento de la aplicación y el gasto de batería.

Y con esto finalizamos todo lo que tenía previsto contar sobre los distintos controles disponibles "de serie" en Android para construir nuestras interfaces de usuario. Existen muchos más, pero por el momento nos vamos a conformar con los ya vistos, que serán los utilizados con más frecuencia.


Saludos compañeros, aprovechen la información.








2 comentarios:

  1. Hola amigo muchas gracias por conpartir tu conocimiento con todos, me gustaria q me sacaras de una duda este control funciona igual a un datagridview, se le puede colocar un nombre a cada columna o si se carga una tabla de una base de datos cada columna qda con el nombre de cada campo de la tabla, si se puede me regalarias un ejemplo por favor, espero tu respuesta muchas gracias te dejo mi correo damilban@gmail.com

    ResponderEliminar
    Respuestas
    1. Hola Damil Cambindo, gracias por la visita y el aporte de tu comentario!!
      Te comento que lamentablemente el autor de esta serie de publicaciones de Android (Jean Ugaz), no se encuentra disponible para responder en el blog. Esperemos vuelva pronto.

      Éxitos!! Hasta cualquier instante!

      Eliminar