Aflați Java pentru Android Challenge Iterație

Ați citit despre modul în care funcționează iterația în Java. Testați-vă noile abilități cu această provocare: cinci exerciții progresive dificile care vă ajută să vă consolidați cunoștințele despre limbajul de programare Java și dezvoltarea Android. Asta-i chiar Android! Poate că trebuie să te referi la alte tutoriale Android pe care le-am publicat pe Mobiletuts +, dar dacă reușești să faci această provocare cu succes, vei ști că progresează frumos în înțelegerea Java și Android SDK.

Înființat

Pentru a vă pregăti pentru această provocare, veți dori să începeți cu o aplicație de bază Android. Pur și simplu creați o aplicație Android în cadrul Eclipse și editați activitatea implicită, în special metoda onCreate (), pentru a testa codul din fiecare dintre aceste provocări.

Dacă ceea ce tocmai am cerut de la dvs. este deja prea provocator, vă recomandăm să faceți un pas înapoi. Începeți cu câteva tutoriale Android, cum ar fi Introducere în dezvoltarea Androidului sau Android începutul: Noțiuni de bază cu Fortune Crunch. Odată ce ați reușit să creați un proiect Android, reveniți și încercați aceste exerciții.

Noțiuni de bază: Lucrul cu resurse String Array

La început, am considerat folosirea unei serii simple de șir pentru a putea utiliza aceste provocări de iterație:

 String aColors [] = "Roșu", "Orange", "Galben", "Verde", "Albastru", "Indigo", "Violet"; 

Cu toate acestea, există o modalitate mult mai bună de a stoca array-uri fixe de valori în Android: ca resurse. Pentru a crea o resursă de șir de șir, trebuie să creați mai întâi resurse String pentru fiecare valoare. Apoi, creați o resursă String Array folosind acele resurse String ca elemente. Folosește tag pentru a combina resursele String într-o resursă de array utilizând copilul tag-uri pentru fiecare element. De exemplu, aici este o serie de culori în interiorul unui fișier de resurse Android:

   roșu portocale Galben Verde Albastru Indigo violet  @ String / roșu @ String / portocaliu @ String / galben @ String / verde @ String / albastru @ String / indigo @ String / violet  

Pentru a încărca această resursă de array în clasa de activitate, utilizați metoda getStringArray () a obiectului Resurse. De exemplu:

 String aColoruri [] = getResources (). GetStringArray (R.array.colorsArray); 

Provocarea # 1: provocarea de încălzire

Acum sunteți gata să începeți. Încărcați matricea de șir din resurse, după cum sa menționat mai sus. Apoi, iterați prin conținutul matricei folosind o buclă for (). Imprimați fiecare șir în jurnalul de depanare Android LogCat folosind metoda Log.v ().

Extra puncte dacă utilizați versiunea prescurtată pentru () buclele, discutate în Aflați Java pentru Dezvoltare Android: Lucrul cu Arrays.

Găsiți răspunsul la această provocare în metoda challengeOne () a proiectului descarcabil.

Provocarea # 2: Întindeți-vă abilitățile

Iterați aceeași matrice ca provocarea # 1, dar folosiți un mecanism de iterație diferit. De exemplu, utilizați în schimb o buclă (). Imprimați fiecare șir în jurnalul de depanare Android LogCat folosind metoda Log.v ().

Găsiți răspunsul la această provocare în metoda challengeTwo () a proiectului descarcabil.

Provocarea # 3: Reverse!

Iterați aceeași matrice înapoi. Imprimați fiecare șir în jurnalul de depanare Android LogCat folosind metoda Log.v ().

HINT: Provocarea # 2 poate ajuta.

Găsiți răspunsul la această provocare în metoda challengeThree () a proiectului descarcabil.

Provocarea # 4: Este vorba despre caracter

Apoi, reveniți la bucla for () creată în Challenge # 1. Actualizați-l pentru a tipări caracterele individuale ale fiecărui șir. Această provocare va necesita o buclă interioară pentru ().

SFAT: Puteți folosi metoda toCharArray () din clasa String pentru a prelua o matrice de caractere.

Răspunsul la această provocare este în metoda challengeFour () a proiectului descarcabil.

Provocarea # 5: Reflectați pe cât de departe ați venit

Pentru această provocare finală, veți avea nevoie de un pic de înțelegere despre reflecția Java. Utilizați reflecția pentru a itera prin câmpurile declarate din cadrul clasei android.os.Build folosind o buclă for (). Imprimați fiecare nume de domeniu în jurnalul de depanare Android LogCat folosind metoda Log.v ().

SFAT: Tutorialul nostru scurt despre reflectia Java va va invata tot ce trebuie sa stiti pentru a finaliza aceasta provocare.

Am oferit două soluții diferite pentru această provocare. Prima soluție presupune că pachetul este importat, iar compilatorul cunoaște clasa. A doua soluție nu face această ipoteză. Aceste soluții se găsesc în metodele challengeFiveA () și challengeFiveB () ale proiectului descarcabil.

Concluzie

Dezvoltatorii Android folosesc periodic tehnici de repetare pentru a rezolva problemele de codificare. Iterația este frecvent utilizată pentru a itera matrice, structuri de date cum ar fi liste sau conținut de bază de date utilizând cursoare. Simțiți-vă liber să postați răspunsurile alternative (sau orice întrebări) în secțiunea de comentarii.

Mult noroc!

Cod