| Tutorial | Exemples | Recursos CITCEA | ||
| Llibre | Projectes | Dades pràctiques | Inici |
Comencem per definir els elements que necessitem. Tindrem dues vistes, una per la llista completa i una per a les dades de la persona triada. En el cas de la llista completa, ens cal un botó per actualitzar la llista que serà important si la taula canvia sovint. També ens cal un ListPicker per triar la persona de la que desitgem veure els detalls. D'altra banda, ens caldrà una etiqueta per poder mostrar la llista de persones i un botó per tornar. Tots els botons aniran disposats horitzontalment.

| Propietat | Valor | Comentaris |
| Nom | HorizontalArrangement_Menu | Aquest nom l'hem de posar en el requadre Components |
| Width | Fill parent | |
| AlignHorizontal | Center |
| Propietat | Valor | Comentaris |
| Nom | Button_Actualitzar | Aquest nom l'hem de posar en el requadre Components |
| Text | Actualitzar | |
| FontBold | Activat | |
| TextColor | Yellow | |
| BackgroundColor | Blue | |
| Shape | rounded |
| Propietat | Valor | Comentaris |
| Nom | ListPicker_Detalls | Aquest nom l'hem de posar en el requadre Components |
| Text | Tria persona | |
| FontBold | Activat | |
| TextColor | Yellow | |
| BackgroundColor | Blue | |
| Shape | rounded |
| Propietat | Valor | Comentaris |
| Nom | Button_Tornar | Aquest nom l'hem de posar en el requadre Components |
| Text | Tornar | |
| FontBold | Activat | |
| TextColor | Yellow | |
| BackgroundColor | Blue | |
| Shape | rounded |
També necessitarem una etiqueta per a les dades de la persona i una imatge per a la fotografia. Per acabar, ens caldra un FusiontablesControl.
| Propietat | Valor | Comentaris |
| Nom | Label_Persona | Aquest nom l'hem de posar en el requadre Components |
| Width | Fill parent |
| Propietat | Valor | Comentaris |
| Nom | Image_Foto | Aquest nom l'hem de posar en el requadre Components |
| Propietat | Valor | Comentaris |
| Nom | FusiontablesControl_Taula | Aquest nom l'hem de posar en el requadre Components |
| KeyFile | Arxiu p12 | Cal pujar l'arxiu amb extensió p12 que hem descarregat abans |
| ApiKey | AIzaSyAlbrNoGbBHGK6nK-btgyNRTq__Y8Ycdcw | El codi ApiKey que hem creat abans |
El programa serà el següent. Guardarem l'identificador de la taula en una variable. També crearem una variable Llista que serà certa quan intentem recuperar la llista sencera i falsa quan es tracti d'un sol element de la llista. Així podrem fer servir trossos de programa comuns per a les dues coses.
La llista DNI ens guardarà els números de DNI de tots els elements de la llista. Això ens permetrà saber quin és el DNI que correspon a l'element seleccionat; aquest valor el guardarem a la variable Persona.
En el moment d'obrir l'aplicació configurarem el FusiontablesControl i amagarem els elements que no tenen utilitat fins que no s'han carregat dades: l'etiqueta on posarem les dades, el botó de tornar, la imatge i el ListPicker. Tot seguit carreguem la llista de persones (variable Llista activada).

Atenció: El nom de la taula, l'ApiKey i el correu han de ser el de la taula que hagueu creat. Els que s'han donat com a mostra corresponen a una taula que ja no existeix.
La funció Llegir s'encarrega d'anar a buscar els valors necessaris a la taula de Google. Quan llegim tota la llista hem de recuperar el nom i el DNI de totes les fileres de la taula. El DNI no el mostrarem però el farem servir d'identificador per si en algun moment hi hagués dues persones amb el mateix nom. Per llegir fem servir la instrucció SQL SELECT seguida de la llista dels noms dels elements que volem llegir separats per comes. Després hi va la instrucció FROM i el nom de la taula. És molt important que després de la paraula FROM hi hagi un espai.
La instrucció SendQuery és la que s'encarrega d'enviar la nostra comanda SQL a l'API. Podem trobar un resum de les comandes SQL a la pàgina de Google Developers. Els formats típics per a les sentència SQL de lectura són els següents:
Les paraules en color verd són les pròpies del llenguatge SQL. L'asterisc ens permet indicar fàcilment que volem llegir tots els camps. Cal tenir present que si el nom del camp o el valor poden tenir comes o espais en blanc cal posar-los entre cometes simples.
Si la variable Llista és falsa llegim totes les caselles però només d'una filera. Això ho fem amb la instrucció SELECT seguida d'un asterisc que vol dir que desitgem totes les columnes seguit de la paraula WHERE i de la condició que s'ha de complir en forma d'una igualtat entre la columna i el contingut desitjat. És molt important que les paraules FROM i WHERE estiguin separades de la resta d'elements amb un espai.

Quan la comanda SQL s'hagi executat i arribi la resposta entrarem a l'acció següent que farà coses diferents segons si havíem demanat la llista o només una filera.
Si hem demanat la llista rebrem una taula amb dues columnes i diverses fileres en format csv. Aquesta taula la convertim en una llista i la guardem en la variable local Taula. Aquesta llista tindrà tants elements com fileres té la taula més una (la primera) que conté els noms de les columnes de la taula. Abans de continuar, ens hem d'assegurar que hem rebut dues o més fileres (en cas contrari la taula està buida). Ara la filera dels noms de columna no ens interessa i, per tant, fem un bucle per a la resta de les fileres. Creem una variable Filera que serà una llista que tindrà els elements d'una filera concreta. El primer element serà el número de DNI, que guardarem a la llista DNI, i el segon element serà el nom, que afegirem com a opció al ListPicker i l'afegirem a l'etiqueta que mostrarà la llista. Un cop fet tot això, mostrarem el botó del ListPicker i la llista.
Si hem demanat només una filera rebrem una llista amb dues fileres, la dels noms de columna i la sol·licitada. Agafarem la segona filera i generarem la fitxa de la persona i carregarem la imatge. Tot seguit, les mostrarem.

El botó Actualitzar i el botó Tornar tornaran a carregar la llista però aquest segon, a més, amagarà els camps que ja no són necessaris. El ListPicker mirarà el DNI de la persona triada i carregarà les dades de la persona.

Mentre fem proves, és convenient mantenir un camp de text (Label) per poder controlar la resposta que rebem quan ens connectem. Podem posar aquest camp, per exemple, entre el primer i el segon agrupaments horitzontals. En la funció GotResult del FusiontablesControl podem fer que el resultat rebut es copiï en aquest camp i així veiem què ha arribat. Quan donem el programa per acabat podem amagar aquest camp o esborrar-lo.

This obra by Oriol Boix is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.