Lär dig Java för Android Utmaning Iteration

Du har läst om hur iteration fungerar i Java. Testa dina nya färdigheter med denna utmaning: Fem progressivt svåra övningar som hjälper dig att stärka din kunskap om Java-programmeringsspråket och Android-utveckling. Det är rätt, Android också! Du kan behöva hänvisa till andra Android-handledning som vi har publicerat på Mobiletuts +, men om du kan klara den här utmaningen med framgång vet du att du utvecklas snyggt i din Java och Android SDK-förståelse.

Inrätta

För att förbereda sig för denna utmaning, vill du börja med en grundläggande Android-applikation. Skapa en Android-applikation inom Eclipse och redigera dess standardaktivitet, särskilt metoden onCreate (), för att testa koden från var och en av dessa utmaningar.

Om det vi bara har frågat om är redan alltför utmanande, rekommenderar vi att du tar ett steg tillbaka. Börja med några av Android-handledningarna, till exempel Introduktion till Android-utveckling eller Börja Android: Komma igång med Fortune Crunch. När du har behärskat inrättandet av ett Android-projekt, returnera och försök med dessa övningar.

Komma igång: Arbeta med String Array Resources

Först ansåg vi att du använde en enkel strängmatris för att du skulle kunna använda dessa iterationsutmaningar:

 String aColors [] = "Röd", "Orange", "Gul", "Grön", "Blå", "Indigo", "Violett"; 

Det finns dock ett mycket bättre sätt att lagra fasta värden av värden i Android: som resurser. För att skapa en strängmatrisresurs måste du först skapa strängresurser för varje värde. Skapa sedan en String Array-resurs med hjälp av dessa String-resurser som element. Använd tagg för att kombinera strängresurser till en arrayresurs med hjälp av barn taggar för varje element. Till exempel, här är en rad färger i en Android-resursfil:

   Röd Orange Gul Grön Blå Indigo Violett  @ Sträng / röd @ Sträng / orange @ Sträng / gul @ Sträng / grön @ Sträng / blå @ Sträng / indigo @ Sträng / violett  

Om du vill ladda denna arrayresurs i din aktivitetsklass använder du getStringArray () -metoden i resursobjektet. Till exempel:

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

Utmaning # 1: Uppvärmningsutmaning

Nu är du redo att komma igång. Ladda strängmatrisen från resurserna, som diskuterats ovan. Sedan iterera genom arrayens innehåll med hjälp av en for () loop. Skriv ut varje sträng i Android LogCat-felsökningsloggen med hjälp av metoden Log.v ().

Extra poäng om du använder kortversionen av för () loopar, diskuterad i Learn Java for Android Development: Arbeta med Arrays.

Hitta svaret på den här utmaningen i utmaningsprojektet challengeOne ().

Utmaning # 2: Stretch Your Skills

Iterera samma array som Utmaning # 1, men använd en annan iterationsmekanism. Till exempel, använd en stund () -slinga istället. Skriv ut varje sträng i Android LogCat-felsökningsloggen med hjälp av metoden Log.v ().

Hitta svaret på denna utmaning i utmaningenTwo () -metoden för det nedladdningsbara projektet.

Utmaning # 3: Omvänd!

Iterera samma array bakåt. Skriv ut varje sträng i Android LogCat-felsökningsloggen med hjälp av metoden Log.v ().

TIPS: Utmaning # 2 kan hjälpa till.

Hitta svaret på denna utmaning i utmaningenThree () -metoden för det nedladdningsbara projektet.

Utmaning # 4: Det handlar om karaktär

Gå sedan tillbaka till den för () -loppen du skapade i utmaning # 1. Uppdatera det för att skriva ut de enskilda tecknen i varje sträng också. Denna utmaning kommer att kräva en inre för () loop.

TIPS: Du kan använda metoden toCharArray () i strängklassen för att hämta en teckenuppsättning.

Svaret på denna utmaning ligger i utmaningenFour () -metoden för det nedladdningsbara projektet.

Utmaning # 5: Reflektera på hur långt du har kommit

För den här sista utmaningen behöver du lite förståelse om Java-reflektion. Använd reflektion för att iterera genom de deklarerade fälten inom android.os.Build klassen med hjälp av en för () loop. Skriv ut varje fältnamn i Android LogCat-felsökningsloggen med hjälp av metoden Log.v ().

TIPS: Vår korta handledning om Java-reflektion lär dig allt du behöver veta för att klara den här utmaningen.

Vi har tillhandahållit två olika lösningar för denna utmaning. Den första lösningen förutsätter att paketet importeras och kompilatören vet om klassen. Den andra lösningen gör inte detta antagande. Dessa lösningar återfinns i utmaningsprojektet challengeFiveA () och challengeFiveB ().

Slutsats

Android-utvecklare använder regelbundna iterationstekniker för att lösa kodproblem. Iteration används ofta för att iterera arrayer, datastrukturer som listor eller databasinnehåll med markörer. Skicka gärna dina alternativa svar (eller några frågor) i kommentarfältet.

Lycka till!