Que estas construint
QuizMe és un joc de preguntes sobre beisbol, però es pot utilitzar com a plantilla per construir qüestionaris sobre qualsevol tema.Amb QuizMe:
- L’usuari respon pas a pas a una sèrie de preguntes, fent clic en un botó per passar a la següent pregunta.
- L’usuari introdueix una resposta per a cada pregunta i l’aplicació informa si cada resposta és correcta o no.
Amb QuizMe, les pregunta del qüestionari són sempre les mateixes llevat que tu, el programador, les canviïs. Més tard, pots crear MakeQuiz , una aplicació que permet als usuaris de l’aplicació crear i modificar les preguntes del qüestionari.
Primers passos
Connecta’t a la pàgina web de App Inventor i comença un nou projecte. Nombralo QuizMe, i també estableix el títol de la pantalla com QuizMe. Obre l’Editor de blocs i conectalo amb el telèfon.
Descàrrega també aquestes fotografies de jugadors de beisbol i guardar-les en el teu ordinador: Larsenberra.jpg , dallasbraden.jpg ,cyyoung.jpg , nolanryan.jpg . Més tard, vas a carregar aquestes imatges en el teu projecte.
Introducció
Vas a dissenyar un joc de preguntes perquè l’usuari passi d’una pregunta a una altra fent clic al botó Següent, per rebre la teva senzilla retroalimentació correcte / incorrecte a cada resposta.
Aquest tutorial presenta:
- Definició i visualització de llistes d’informació
- La seqüenciació a través d’una llista que utilitza una variable d’índex – una variable que segueix la pista d’una posició en una llista.
- Comportaments condicionals – dur a terme determinades operacions només quan es compleix una condició.
- Canvi d’una imatge per mostrar una imatge diferent en diferents moments.
Configuració dels components
Utilitza el dissenyador de components per crear la interfície d’QuizMe. Quan hagis acabat, ha de ser semblant a la figura de sota (també hi ha instruccions més detallades per sota de la imatge).
Per crear aquesta interfície, primer carrega les imatges que has descarregat en el projecte. Feu clic al botó Add a l’àrea de Mitjana i selecciona un dels arxius descarregats (per exemple, Larsenberra.jpg). Després fes el mateix amb les altres tres imatges.
A continuació, crea els següents components arrossegant des de la Paleta al Visor.
| Tipus de component |
Grup de la paleta |
Com ho diràs |
Propòsit del component |
| Image |
Basic |
Image1 |
La imatge part de la pregunta |
| Label |
Basic |
QuestionLabel |
Mostra la pregunta actual |
| HorizontalArrangement |
Screen Arrangement |
HorizontalArrangement1 |
Organitza l’etiqueta i calaix de text |
| Label |
Basic |
AnswerPromptLabel |
Text per al calaix de resposta |
| TextBox |
Basic |
AnswerText |
L’usuari introdueix la teva resposta aquí. |
| Label |
Basic |
RightWrongLabel |
Correcte / Incorrecte es mostra aquí. |
| HorizontalArrangement |
Screen Arrangement |
HorizontalArrangement2 |
Organitza el AnswerButton i nextButton |
| Button |
Basic |
AnswerButton |
On l’usuari fa clic per enviar una resposta |
| Button |
Basic |
NextButton |
On l’usuari fa clic per passar a la següent resposta |
Estableix les propietats dels components que es descriuen a continuació:
| Component |
Acció |
| Image1 |
Estableix la seva propietat Picture a Larsenberra.jpg. Aquesta és la primera imatge que ha d’aparèixer. |
| QuestionLabel |
Canvia la seva propietat Text a “question” |
| AnswerPromptLabel |
Canvia la seva propietat Text a “Enter Answer:”. A la pantalla Viewer (visor). Mou el botó dins de HorizontalArrangement1. |
| AnswerText |
Canvia la seva propietat Hint a “please enter an answer”. Al Visor, mou AnswerText dins HorizontalArrangement1. |
| AnswerButton |
Canvia la seva propietat Text a “Submit”. Al Visor, mou el botó dins de HorizontalArrangment2. |
| NextButton |
Canvia la seva propietat Text a “Next”. Mou el botó dins de HorizontalArrangement2. |
| RightWrongLabel |
Canvia la seva propietat Text a “correct / incorrect” |
Afegir comportaments als components
Obre l’Editor de blocs per afegir els comportaments de l’aplicació. En primer lloc, definirem dues variables de llista, QuestionList per mantenir la llista de preguntes, iAnswerList per mantenir la llista de respostes corresponents.
Per definir les dues variables de llista, necessitareu els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| def variable |
Definitions |
Defineix la variable QuestionList (Canvia-li el nom) |
| def variable |
Definitions |
Defineix la variable AnswerList (Canvia-li el nom) |
| make a list |
Lists |
Utilitzada per inserir els elements de QuestionList |
| text (3 d’ells) |
Text |
les preguntes actuals |
| make a list |
Lists |
Utilitzada per inserir els elements de AnswerList |
| text (3 d’ells) |
Text |
les respostes actuals |
Per crear variables globals arrossega un bloc definició de variable del calaix Definitions i feu doble clic al nom per defecte “variable” per canviar-li el nom. El bloc def variable té una ranura per al valor inicial de la variable. Si la variable representa un nombre o text, feu clic al triangle del bloc vermell-i tria el tipus que desitgis. Si la variable representa una llista, arrossega bloc vermell? A la paperera, veu el calaix Lists, i connecta un bloc make a list en la definició de la variable.
Els blocs han de tenir el següent aspecte:
Defineix la variable oculta d’Índex
Cada vegada que l’usuari fa clic al NextButton per procedir a través del qüestionari, l’aplicació ha de recordar la pregunta en què es troba. En programació, per recordar alguna cosa, es defineix una nova variable. En aquest cas, l’aplicació ha de recordar el nombre de pregunta en curs – l’índex en la llista QuestionList.
Per crear la variable currentQuestionIndex, necessitareu els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| def variable |
Definitions |
Defineix la variable currentQuestionIndex (Canvia-li el nom) |
| number (1) |
Math |
Establir el valor inicial currentQuestionIndex a 1 |
Els blocs han de tenir el següent aspecte:

Mostra la primera pregunta
Per començar, fes cas omís de les respostes i simplement treballa en el comportament de la seqüència per les preguntes. El comportament desitjat és el següent: quan l’aplicació s’inicia, la primera pregunta hauria d’aparèixer a l’etiqueta amb el nom QuestionLabel. Quan l’usuari fa clic a NextButton, la segona pregunta ha d’aparèixer.Quan l’usuari fa clic una vegada més, la tercera ha d’aparèixer. Quan s’arriba a la darrera pregunta, fent clic a NextButton ha de donar lloc a la primera pregunta, que un cop més ha d’aparèixer en QuestionLabel.
Amb App Inventor, es seleccionen els elements particulars d’una llista amb el bloc select list item. El bloc demana que especifiquis la llista i un índex – una posició en la llista. Si una llista té tres elements, els índexs 1,2, i 3 són vàlids.
Per QuizMe, quan l’aplicació s’inicia, l’aplicació ha d’elegir la primera pregunta a la llista i mostrar-la en el component QuestionLabel.
Per aquest comportament d’inicialització d’aplicació, necessites els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| Screen1.Initialize |
Screen1 |
Quan aplicació comença, aquest controlador d’esdeveniments s’activa. |
| setembre QuestionLabel.Text to |
QuestionLabel |
Necessari per posar la primera pregunta en QuestionLabel |
| select list item |
Lists |
Necessari per seleccionar la primera pregunta de QuestionList |
| global QuestionList |
My Definitions |
La llista per seleccionar |
| number (1) |
Math |
Selecciona la primera pregunta amb l’índex 1 |
Els blocs han de tenir el següent aspecte:
Com treballen els blocs
L’esdeveniment Screen1.Initialize s’activa quan l’aplicació s’inicia. El primer element de la variable QuestionList es selecciona i es col · loca en QuestionLabel.Text.Així que quan l’aplicació s’inicia, l’usuari veurà la primera pregunta.
Prova d’aquest comportament. Fes clic a Restart Phone App (o Connect Phone si el telèfon no està connectat). Què apareix al telèfon? Si heu creat QuestionList com es descrivia anteriorment, el primer element de QuestionList, “Who pitched a perfect game in the World Series?” (Qui va llançar un joc perfecte en les Sèries Mundials?), Hauria aparèixer en l’etiqueta QuestionLabel.
Passant a través de les preguntes
Ara programa el comportament de NextButton. Ja has definit currentQuestionIndex per recordar la pregunta en què l’usuari es troba. Quan es prem NextButton,l’aplicació necessita incrementar aquesta variable, per exemple, canviar d’1 a 2 o de 2 a 3, etc, i aleshores utilitzar el valor resultant per seleccionar la nova pregunta “actual”. Per aquest comportament, necessitareu els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| NextButton.Click |
NextButton |
Quan l’usuari prem Next, aquest controlador de evnto és activat. |
| setembre currentQuestionIndex to |
My Definitions |
Necessari per col · locar la primera pregunta a QuestionLabel |
| Bloc + |
Math |
Usat per incrementar currentQuestionIndex |
| global currentQuestionIndex |
My Definitions |
El nou valor és el vell + 1 |
| number (1) |
Math |
Per al + 1 |
| setembre QuestionLabel.Text to |
QuestionLabel |
Necessari per mostrar la següent pregunta aquí |
| select list item |
Lists |
Necessari per seleccionar la primera pregunta de QuestionList |
| global QuestionList |
My Definitions |
Es col · loca a la ranura list de l’anomenada select list item |
| global currentQuestionIndex |
My Definitions |
Es col · loca a la ranura index de l’anomenada select list item, volem l’últim element referit |
Els blocs han de tenir el següent aspecte:
Com treballen els blocs
La primera fila de blocs incrementa la variable currentQuestionIndex. Si currentQuestionIndex té un 1 al, és canviat a 2. Si té un 2, és canviat a 3, i així successivament. Quan la variable currentQuestionIndex ha canviat, l’aplicació s’utilitza per seleccionar la pregunta “actual”.
Recordem que al controlador d’esdeveniments Screen.Initialize, l’aplicació selecciona la primera pregunta per mostrar:
Quan es fa clic a NextButton, l’aplicació no tria el primer element de la llista, o el segon o el tercer, tria l’element referit a currentQuestionIndex .
Els blocs s’executen d’esquerra a dreta. L’aplicació primer avalua el paràmetre index de select list item, que és la variable currentQuestionIndex. El nombre emmagatzemat en currentQuestionIndex s’utilitza com a índex quan l’element de la llista de selecció s’executa.
Quan es fa clic a NextButton per primera vegada, els blocs d’increment d’establir currentQuestionIndex d’1 a 2, de manera que l’aplicació selecciona el segon element de QuestionList, “who pitched the first perfect game of 2010?”. La segona vegada que es fa clic a NextButton, currentQuestionIndex es canvia de 2 a 3, i l’aplicació selecciona la 3 ª pregunta a la llista, “who pitched the first perfect game of the modern era?”
Prova d’aquest comportament. Prova el comportament de NextButton per veure si l’aplicació està treballant correctament fins ara.Per provar-ho, pren el paper de l’usuari i fes clic a NextButton al telèfon. ¿Mostra la pantalla del telèfon a la segona pregunta?, “Who pitched the first perfect game of 2010?” Hauria, i la tercera pregunta ha d’aparèixer quan fas clic a NextButton de nou. Si això funciona, fes-te un copet a l’esquena ràpidament, i després sige endavant.
Intenta fer clic a NextButton de nou (una tercera vegada). Has de veure un error: “Attempting to get item 4 of una llista dels length 3” (Intent d’obtenir el punt 4 d’una llista de longitud de 3). L’aplicació té un error – Saps quin és el problema?
El problema amb l’aplicació és que sempre incrementa la variable currentQuestionIndex quan NextButton es prem. Quan currentQuestionIndex ja està en 3 i l’usuari fa clic a NextButton, l’aplicació canvia currentQuestionIndex de 3 a 4, truca al element de la llista de selecció per obtenir el currentQuestionIndex , O en aquest cas, l’element quart. Atès que només hi ha tres elements QuestionList, Android es queixa.
El que l’aplicació ha de fer és fer una pregunta – comprovar una condició – quan NextButton es prem, i executa diferents blocs dependendiendo de la resposta. Una manera de fer la pregunta és preguntar, “¿És la variable currentQuestionIndex actualment en 3?” Si la resposta és si, Has ajustar currentQuestionIndex de nou a 0 de manera que l’usuari és portat de nou a la primera pregunta.
Necessitaràs els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| if test then estat |
Control |
Per preguntar si l’usuari està en l’última pregunta |
| = Block |
Math |
Per provar si currentQuestionIndex és 3 |
| global currentQuestionIndex |
My Definitions |
|
| number 3 |
Math |
3 és el nombre d’elements a la llista |
| setembre currentQuestionIndex to |
My Definitions |
Ajustar a 0 per tornar a la primera pregunta |
| number (0) |
Math |
Estableix a 0, perquè els propers blocs s’incrementaran en 1 |
El controlador d’esdeveniments NextButton.Click modificat ha de tenir aquest aspecte:
Com treballen els blocs
Quan es fa clic a NextButton, l’aplicació 1 comprova si currentQuestionIndex té un 3 en el mateix. Si és així currentQuestionIndex es torna de nou a 0 perquè quan es agrégé 1 a ell amb els blocs de baix, sigui 1 i l’aplicació mostri de nou la primera pregunta. Tingues en compte que només els blocs inserits en if-test-then estatdepenen de la condició – els blocs increment i set QuestionLabel.Text to s’executen en totes les condicions.
Prova aquest comportament. Atès que les variables com currentQuestionIndex estan ocultes, són sovint la font d’errors en un programa. Afortunadament, App Inventor ofereix una manera de fer aquestes variables ocultes transparents durant la prova. En concret, App Inventor et permet “veure” com el valor d’una variable canvia segons progressa l’aplicació. Per aquesta prova, feu clic dret en el bloc de definició currentQuestionIndex a l’Editor de blocs i tria Watch. A continuació, tria Restart Phone App A continuació, en el bloc de definició apareixerà una caixa que mostra el valor inicial de currentQuestionIndex (1):
Ara agafa el telèfon i feu clic al NextButon. La segona pregunta, “who pitched the most Recent perfect game in the major Leagues?”(Qui va llançar el joc perfecte més recent en les Grans Lligues?) Ha d’aparèixer en QuestionLabel al telèfon, com abans. A la pantalla d’App Inventor, 2 hauria d’aparèixer a la cel · la de memòria de currentQuestionIndex:
En fer clic un cop més, la tercera pregunta ha d’aparèixer al telèfon i 3 ha d’aparèixer en la cel · la de memòria. Si fas clic de nou, 1 d’aparèixer en currentQuestionIndex i la primera pregunta al telèfon.
Una aplicació sostenible: Fer que sigui fàcil modificar les preguntes
A continuació, es modificarà l’aplicació perquè sigui fàcil afegir i eliminar elements de la llista. Vas a reescriure els blocs perquè treballin en qualsevol llista, no només en una amb exactament tres elements. Per començar, afegeix una quarta pregunta a QuestionList i una altra resposta a AnswerList. Els blocs han de tenir el següent aspecte:
Prova l’aplicació modificada. Fes clic a NextButton un nombre de vegades. Has de veure que no apareix la quarta pregunta, no importa quantes vegades facis clic a Next.
El problema és que la prova per veure si l’usuari està en l’última pregunta és molt concreta: se li pregunta si la variable currentQuestionIndex és 3:
Pots només canviar el número 3 a 4, i l’aplicació tornarà a funcionar correctament. El problema amb aquesta solució, però, és que cada vegada que modifiquis les preguntes i respostes, també has de recordar-te de fer aquest canvi. Aquestes dependències en un programa d’ordinador sovint condueixen a errors, especialment quan una aplicació creix en complexitat. És molt millor establir el programa de manera que treballi, sense importar quantes preguntes hagi. Tal generalitat és encara més important que la llista està treballant amb canvis de forma dinàmica, per exemple, una aplicació de prova que permet a l’usuari afegir noves preguntes.
La millor solució és fer la pregunta d’una manera més general. Realment vols saber si la pregunta en què s’encuntra l’usuari està – el valor de currentQuestionIndex – és tan llarg com el nombre d’elements en QuestionList. Si l’aplicació fa la pregunta d’una manera més general, funcionarà fins i tot quan agreges o treguis elements de QuestionList. Per modificar el controlador d’esdeveniments NextButton.Click vas a substituir la comprovació anterior que es referia directament a 3. Necessitaràs els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| length of list |
Lists |
Comprova el nombre d’elements en QuestionList |
| global QuestionList |
My Definitions |
Es col · loca a la ranura list de length of list |
El teu controlador d’esdeveniments NextButton.Click ha d’aparèixer ara així:
Com treballen els blocs
La prova if ara compara currentQuestionIndex amb la longitud de QuestionList. Així, si currentQuestionIndex té un 4 en l’, i la longitud de QuestionList és 4, llavorscurrentQuestionIndex es posa a 0 (i després a 1 després de l’operació d’increment en la primera fila de blocs després de if). Tingues en compte que, pel fet que els blocs no es refereixen a tres o ni a cap mida específica, el comportament funcionarà independentment quants elements hi ha a la llista.
Posa a prova el comportament modificat. Quan fas clic al nextButton, realitza l’aplicació ara la seqüència a través de les quatre preguntes, passa a la primera després de la quarta?
Canvi de la imatge per a cada pregunta
L’aplicació actual mostra sempre la mateixa imatge, no importa la pregunta que se li demani. Pots canviar això perquè la imatge correspongui a la pregunta que apareix quan es fa clic a NextButton. Anteriorment, has agregat quatre imatges en els mitjans per al projecte. Ara, crearem una tercera llista, PictureList, amb els noms dels arxius d’imatge com els seus elements i modificar el controlador d’esdeveniments NextButton.Click per canviar la imatge cada vegada.
En primer lloc, crea una PictureList i inicializala amb els noms dels arxius d’imatge. Assegura’t que els noms són exactament els mateixos que els noms dels arxius que es van carregar en els mitjans del projecte. Així és com els blocs de PictureList han de quedar:
A continuació, has de modificar el controlador d’esdeveniments NextButton.Click perquè es modifiqui la imatge en funció de la pregunta que l’usuari estigui en aquest moment. Si s’estableix la propietat Image.Picture a el nom d’un arxiu d’imatge que s’ha carregat, aquesta imatge apareixerà. Per modificar NextButton.Click,necessitareu els següents blocs:
| Tipus de bloc |
Calaix |
Propòsit |
| setembre Image1.Picture to |
Image1 |
estableix aquesta per canviar la imatge |
| select list item |
Lists |
necessària per seleccionar la imatge corresponent a la pregunta actual |
| global PictureList |
My Definitions |
selecciona un nom de fitxer d’aquesta llista |
| global currentQuestionIndex |
My Definitions |
selecciona l’element indicat de currentQuestionIndex |
Els blocs han de tenir aquest aspecte:
Com treballen els blocs
CurrentQuestionIndex serveix d’índex per QuestionList i PictureList. Quan currentQuestionIndex és 1, l’aplicació selecciona la primera pregunta i la primera imatge.Quan currentQuestionIndex és 2, l’aplicació selecciona la segona pregunta i la segona imatge. aquest sistema depèn de les llistes que estan sincronitzades com a efecte están.ía i indeed they are. Per exemple, la primera foto, LarsenBerra.jpg és una imatge de Don Larsen, i Don Larsen és la resposta a la primera pregunta, “Qui va llançar un joc perfecte en la Sèrie Mundial?” Posa a prova el comportament modificat. Apareix una imatge diferent cada vegada que fas clic a nextButton?
L’avaluació de les respostes
A continuació, anem a afegir blocs que informen de si l’usuari ha respost a una pregunta correctament o no. L’usuari introdueix la resposta a AnswerText i després fa clic a AnswerButton. L’aplicació de comparar l’entrada de l’usuari amb la resposta a la pregunta “actual”, utilitzant un bloc ifelse per comprovar-ho. L’etiquetaRightWrongLabel s’ha de modificar per informar si la resposta és correcta o no. Necessitaràs els següents blocs per aquest comportament:
| Tipus de bloc |
Calaix |
Propòsit |
| AnswerButton.Click |
AnswerButton |
el comportament s’activa quan l’usuari fa clic a AnswerButton |
| ifelse |
Control |
si la resposta és correcta, fa una cosa, si no fa altra cosa |
| = Block |
Math |
per preguntar si és la resposta correcta |
| AnswerText.Text |
AnswerText |
la resposta de l’usuari es troba en aquesta caixa de text |
| select list item |
Lists |
per seleccionar la resposta actual d’AnswerList |
| global AnswerList |
My Definitions |
La llista de la de seleccionar |
| global currentQuestionIndex |
My Definitions |
el número de la pregunta (i el nombre de resposta) en què l’usuari està |
| setembre RightWrongLabel.Text to |
RightWrongLabel |
informar sobre la resposta aquí |
| text “correct” |
Text |
si la resposta és correcta |
| setembre RightWrongLabel.Text to |
RightWrongLabel |
informar sobre la resposta aquí |
| text “incorrect” |
Text |
si la resposta és incorrecta |
Els blocs han de tenir el següent aspecte:
Com treballen els blocs
La prova ifelse comprova, “és la resposta de l’usuari (AnswerText.Text) igual a l’element currentQuestionIndex h corresponent a AnswerList?” SicurrentQuestionIndex és 1, l’aplicació compara la resposta de l’usuari amb el primer element de AnswerList, “Don Larsen”. Si currentQuestionIndex és 2, l’aplicació compara la resposta de l’usuari amb la segona resposta a la llista, “Dallas Braden”, i així successivament. Si el resultat és positiu, els blocs then estat s’executen iRightWrongLabel s’ajusta a “correcte!”. Si la prova és negativa, els blocs else estat blocks s’executen i RightWrongLabel s’ajusta a “incorrecte”.
Prova l’aplicació modificada. Tracta de respondre a una de les preguntes. Ha d’informar has respost a la pregunta tal i com s’especifica en AnswerList. Posa a prova tant amb una resposta correcta com incorrecta (com el text es compara, la prova distingeix entre majúscules i minúscules).
Fes clic a NextButton i respon a una segona pregunta. Encara funciona? Ha, però és possible que notis que quan fas clic NextButton,el text “correct” .. / .. / .. / “incorrect” i la resposta anterior encara hi són. Encara que és bastant innocu, com qüestions de la interfície d’usuari sense dubte seran observades pels usuaris de la teva aplicació.
Per deixar en blanc RightWrongLabel i AnswerText, vas a posar els següents blocs dins del controlador d’esdeveniments NextButton.click:
| Tipus de bloc |
Calaix |
Propòsit |
| setembre RightWrongLabel.Text to |
RightWrongLabel |
L’etiqueta per deixar en blanc |
| text (blank) |
Text |
Quan es fa clic a Següent, esborra l’avaluació a la resposta anterior |
| setembre AnswerText.Text to |
AnswerText |
La resposta de l’usuari per a la pregunta anterior |
| text (blank) |
Text |
Quan es fa clic a Següent, esborra la resposta anterior |
Els blocs han de tenir el següent aspecte:
Com treballen els blocs
Quan es fa clic a NextButton l’usuari es mou a la següent pregunta, de manera que les dues primeres files del controlador d’esdeveniments esborren RightWrongLabeli AnswerText.
Prova d’aquest comportament. Respon la pregunta i fes clic a Submit, a continuació, fes clic a NextButton. El teu resposta anterior i l’avaluació de l’aplicació desapareixen?
Programa Final
QuizMe! Versió Final
Embolica la versió final de l’aplicació triant Package For Phone | Barcode al menú del Component Designer. Quan aparegui el codi de barres, utilitza l’escàner de codi de barres del teu telèfon per descarregar i instal · lar l’aplicació.
Variacions
Quan aconsegueixis una quiz funcinando, és possible que desitgis explorar algunes variacions. Per exemple,
- En comptes de mostrar imatges per a cada pregunta, intenta reproduir un clip de so o un vídeo de curta durada. Amb el so, pots convertir la teva aplicació en una aplicació Endevina aquesta cançó.
- La prova és molt rígida en termes del que és acceptat com una resposta vàlida. Hi ha diferents formes de modificar això. Una d’elles és utilitzar el bloctext.contains per veure si la resposta de l’usuari està dins de la resposta actual. Una altra és la de proporcionar respostes múltiples per a cada pregunta, i comprovar per iteració (foreach) a través d’elles per veure si algúna coincideix.
- Transforma la prova perquè sigui d’opció múltiple. La llista de respostes haurà de ser una llista de llistes, i cada sub-llista mantindrà les opcions de resposta. Fes servir el component ListPicker per permetre a l’usuari triar una resposta.
Revisió
Aquestes són algunes de les idees que es tracten en aquest tutorial:
- Les aplicacions poden ser escrites d’una manera general perquè funcionin amb qualsevol llista de dades.
- Les variables d’índex s’utilitzen per fer un seguiment de la posició actual dins d’una llista. Quan les incrementes, vés amb compte amb arribar a la final de la llista.
Continua llegint →