Definiendo más UI y arreglando muchos fallos…

Desde la última entrada, lo que he avanzado en la app ha sido bastante poco. Basicamente me he dedicado a definir la UI de las pantallas que los invitados van a ver de la Qdada, en modo lectura algunas y la de fechas que permita elegir las fechas que el invitado pueda. Pero lo que más tiempo me ha llevado es la subsanación de diversos bugs que han ido apareciendo a lo largo de todas las pruebas que he ido llevando a cabo. Son fallos menores, pero cuando un proyecto empieza a crecer considerablemente, pues no es tan inmediato el detectar el punto exacto donde falla para subsanarlo. Por ello le he dedicado varias horas a corregir fallitos en los que he estado más buscando el motivo del fallo que arreglandolo. Uno de ellos era que se duplicaba exponencialmente el Creador en los invitados de la Qdada. Esto era debido a que manejaba una lista auxiliar de invitados para ordenadarlos: primero por si asistian o no a la Qdada, después si podían ir pero el día más votado no pueden, y por último el resto de invitados que aún no han elegido ningún día (porque no han visto la qdada u otro motivo similar). Dentro de esas tres divisiones los ordeno a su vez por orden alfabético, así que para hacer esas ordenaciones usaba una lista auxiliar que inicializaba, igualandola, (a lo ‘animal’) a la lista oficial de invitados, por lo que cada vez que introducia un elemento en la lista este también se introducía en la lista oficial de invitados, duplicando estos. El fallo era precisamente ese, al inicializar la lista auxiliar. No se pueden inicializar listas con una asignación (=), ya que son punteros al fin y al cabo. Lo que se debe hacer es copiar en la lista los elementos que queramos, en este caso como queriamos volcar todo, lo que hice fue usar la función de adición múltiple .addAll() de los objetos List de Java.

Y así fui subsanando pequeños detalles, no tan tontos y absurdos como el fallo este de trabajar con listas, que se me pasó por no fijarme bien e ir codificando a toda pastilla xDD.

Un fallo mayor y que me tuvo en vilo durante casi 1 hora, fue la actualización, nuevamente, del IDE. Actualicé (iluso de mi, aunque quiero hacer el proyecto siempre actualizando Android Studio, a la última versión Beta, no estable,  para ir familizarizandome con él y afrontar fallos por aventurarme y así ir conociendolo mejor a la hora que los voy subsanando). Pues bien las dependencias se fueron todas pal ‘carajo’. No me reconocía, después de reconfigurarlas nuevamente, la dependencia del módulo que uso para el DatePicker y el TimePicker. Y tras idas y venidas, al parecer la actualización me borró una línea del settings.gradle. A parte de eso, tuve que borrar la carpeta .gradle de mi home, y que Android Studio la volviera a generar, porque no estaba tirando correctamente de Maven y descargando las dependencias necesarias de los repositorios. Así que mucho cuidado al actualizar Android Studio, pueden ocurrir cositas de estas, y de tener un proyecto totalmente funcional, a pasar a un proyecto que Gradle no sabe compilar, y tener que estar 1 hora indagando el por qué. Pero bueno, ya tengo Android Studio funcionando en su versión 0.4.3.

Así que lo único que puedo mostrar en esta entrada son las interfaces que definí y se utilizaran para que una vez creada la Qdada por el Creador, esta sea vista por sus invitados. También configuré la lógica que llevan detrás para recuperar la Qdada de BBDD y utilizar sus datos para volcarlos en esta UI. En el Fragment de Fechas usé un ListView totalmente personalizado y donde tuve que capturar eventos de cada item para saber cuando el usuario selecciona (positiva o negativamente) una fecha. Esto lo conseguí guardando en el Tag del Item la posición clickada para saber sobre que fecha a interactuado.

Pantalla de Elección de Fechas

Pantalla de Elección de Fechas

 

Y también definí una interfaz para mostrar los usuarios invitados ordenados como expliqué antes: Primero los que puedan asistir en la fecha ganadora hasta el momento, después los que han seleccionado fechas pero no la ganadora, y por último los que no han respondido o no pueden ir. A su vez estos tres grupos están ordenador por orden alfabético (por nombre). Y para este fragment hice uso de un GridView, y así poder crear una matriz de imagenes autoadaptativa a la dimensión de pantalla (y resolucion) que tenga el dispositivo en que se ejecute.

Pantalla de Visualización de Invitados

Pantalla de Visualización de Invitados

Y cómo siempre aquí el Commit de hasta ahora.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s