Betingelser og løkker i Kotlin – if, when, for, while

Her meget kort vist hvordan betingelser og løkker bruges i Kotlin.

IF-ELSE

// Traditionel brug
var max = a
if (a < b) max = b

// Med else
var max: Int
if (a > b) {
max = a
} else {
max = b
}

// Som udtryk
val max = if (a > b) a else b


WHEN-ELSE

when (x) {
1 -> print(“x == 1”)
2 -> print(“x == 2”)
parseInt(s) -> print(“s encode x”)
is String -> x.startWith(“prefix”)
x.isOdd() -> print(“x er ulige)
x.isEven() -> print(“x er lige)
else -> { // ellers
print(“x er hverken 1 eller 2”)
}
}


FOR

for (item in collection) print(item)

for (i in 1..3) {
println(i)
}
for (i in 6 downTo 0 step 2) {
println(i)
}

for (i in array.indices) {
println(array[i])
}

for ((index, value) in array.withIndex()) {
println(“the element at $index is $value”)
}


WHILE

while (x > 0) {
x–
}

do {
val y = retrieveData()
} while (y != null)


Funktioner i Kotlin

Her et par eksempler på funktioner “fun” i Kotlin. En efektiv måde at strukturere sine programmer på.


fun skrivTekst(tekst: String) {
println(tekst)
}

skrivTekst(“Hallo”)
// Resultat = Hallo


fun skrivMeddelseMedParameternavn(tekst: String, type: String = “Meddelse: “) {
println(“[$type] $tekst”)
}

SkrivMeddelseMedParameternavn(tekst=”Hej med dig. “, type=”Info: ” )
// Resultat = “Info: Hej med dig.”

SkrivMeddelseMedParameternavn(“Hej med dig. “, “Info: ” )
// Resultat = “Info: Hej med dig.”

SkrivMeddelseMedParameternavn(tekst=”Hej med dig.” )
// Resultat = “Meddelse: Hej med dig.”

SkrivMeddelseMedParameternavn(“Hej med dig.” )
// Resultat = “Meddelse: Hej med dig.”


fun plus(x: Int, y: Int): Int {
return x + y
}

println(plus(3,4))
//Resultat = 7


fun gange(x: Int, y: Int) = x * y

println(gange(2, 3))
// Resultat = 6

Input felt, funktioner, variabler og if, if else, else

Vi laver vores første input felt. Laver en funktion som giver et svar tilbage og som indeholder en betingelse som giver det rigtige svar (if – if else – else)

Vi har styr på knapper og felter som vi kan tilføje i designet. Og vi ved hvordan vi kan sende en besked ud på skærmen med Toast.

Teksten er en “Plain Text”, som vi kan bruge som indtastnings felt. Knappen en normal “Button” knap.

Vi tager et kik på tekst feltet, som skal have et ID “tx_tekst”, en tekst og en stor font. Feltet skal også hænges rigtig på plads med “Attributes”.

Læg mærke til ID tx_tekst som skal bruges i programmet.

Også “Layout” er vigtigt. Inde i firkanten er der små streger som kan have 3 tilstande. Den som er markeret med rød viser at feltet trækkes ud til siderne (16) viser at der skal være 16 i afstand til kanten.

I toppen er tekst feltet hængt op med en afstand på (24) til øverste kant.

Indtastnings feltet har nu teksten “Indtast en tekst” og en skrift størrelse på 30.

Knappen er simpel – vi hænger den op øverst (16) i afstand, på vores indtastnings felt og centreret til højre og venstre men en afstand på (150). Kunne også være mindre vigtigt er dog at tallene i højre og venstre side er de samme ellers kommer knappen ikke i midten.

Knappen skal have et ID her “bn_knap” så vi kan bruge den i programmet.

I tager et kik på koden.

Vigtigt er her funktionen “fun test”, “setOnClickListner” til knappen og “Toast” som skriver en tekst på skærmen.

Her ses funktionen “fun test” som har en parameter tekst og giver et svar retur.

Vi kan se en setOnClickListner som venter til vi har trykket på en knap. Og en Toast som tager den tekst vi har tastet ind overfører det til funktionen og skriver svaret ud på skærmen.

Læg også mærke til (var svar:String = “”) som definerer en lokal variabel som bruges til at retunere svaret i vores test funktion.

Kik også på if. Her spørger vi om tekst = “Hej” er det korrekt sættes svar til “Hej med dig” – if (tekst == “Hej”) svar = “Hej med dig”.

Vi spørger på “Hej” og på “Hallo” er teksten en ander for vi svaret tilbage “Hvad?”.

App version, her kan den ændres

Udgiver man sin første app har den versions nummer 1. Laver man ændringer skal man også forhøje versions nummeret i sin app.

Her kan du ændre versions nummeret på din app.

Når man udgiver en app på Google Play, skal denne app signeres og den skal have en versionskode. Koden starter med 1, laver du ændringer i appen skal versionskoden forhøjes.

Du beskriver for hver version i Google Play Consolen hvilke ændringer du har lavet. Og uploader din signeret app.

Ændre et billedet på skærmen med en knap.

Vi start med en tom skabelon.

Vi starter med at slette “Hello world”.
Tilføj en knap og hæng den op øverst,venstre og højre. Giv den et navn bn_skiftbiled “ID”.
Vi markerer 2 billeder “kopi” og tilføjer dem under “res/drawable” med past.
Tilføj de 2 billeder vi skal bruge.
Her ser vi vores billeder vigtigt er at de er skrevet med småt og ikke indeholder specialt tegn.
Vi tilføjer et billed til vores design.
Vi vælger et billed under projekt og trykker ok.
Så billedet er placeret og hængt på knappen og kanterne.
Vi har brug for en setOnClickListener som kontrollerer om knappen er trykket.

setImageResource skifter grafiken ud med vores hellow billed når vi trykker på knappen bn_skiftbilled.

Her kan man se det første skærm biled.
Og billedet som skiftes når vi trykker på knappen.

Så nu kan vi ændre på de billeder, som vi viser på skærmen.

Se hvad der sker i programmet skriv til loggen

Du kan skrive en tekst til loggen så du kan følge med i hvad der sker i til program. Her et lille eksempel. Trykker man på knappen kommer der en meddelse i loggen at knappen er trykket.

Nu har vi mulighed for at se i loggen at knappen bliver trykket.

Trykker man nu på knappen kan men med det samme i loggen se teksten “Du har trykket på knappen”.

I Logcat kan man se at vi har trykket på knappen.

Der står rigtig mange oplysninger i Logcat hvis man øverst søger efter tag: teksten i dette eksempel “Knud” vises kun log beskeder som indeholder “Knud”. Trykker vi nu på knappen på mobilen som er tilsluttet med USB kablet eller på vores virtuelle mobil.

Kan man med det samme i Logcat se at knappen har været trykket.

Det er en god mulig for at fejl finde sit program. Debug tekster vises ikke på skærmen de vises kun i Logcat i program loggen.

Skriv en pop-up tekst på skærmen med Toast

Ønsker du en pop-up tekst på skærmen som vises og forsvinder igen så er Toast en god måde at gøre dette på.

Her et lille eksempel på en pop-up tekst med Toast.

Du skal bruge en import til Toast den tilføjes automatisk ved at trykke Alt+Enter på Toast.

Hvordan laver jeg en tryk knap

Hvordan tilføjer jeg en knap på skærmen og hvordan får jeg programmet til at reagere hvis man trykker på knappen.

Øverst til højre kan man zoome ind på sit design, lav denne større så man kan se designet.
Nu kan vi se teksten og er klar til at tilføje vores første knap.
Tilføjer vores først knap til vores skærm.
Knappen er nu tilføjet vores skærm, den skal dog også placeres på skærmen.
Nu kunne man tro at det var nok at placere knappen det rigtige sted på skærmen.

Sådan er det ikke. Vi kan flytte rund med knappen på skærmen. Men installerer man appen på sin telefon vil knappen ikke være korrekt placeret. For at placere knappen øverst i midten af skærmen skal der lidt mere til. Vi kikker lidt nærmere på knappen.

Vi kan de de runde prikker på knappen og de små firkantede i hjørnerne.

Prikkerne bruges til at gøre knappen fast til kanter eller til andre knapper, billeder m.m. Firkanterne i hørnerne bruges til at gøre knappen større eller mindre.

Vi gør knappen fast til kanterne ved at trykke på prikken øverst og trække den op til øverste kant. Prikken til høre trækkes til højre kant og prikken til venstre til venstre kant.

Knappen hænger nu fast øverst, til højre og til venstre. Til højre har vi “Attributes” som ses når man har fokus på knappen.

“Attributes” Egenskaber på knappen kan ændres i dette menu. Vi kan se at vi har en afstand på 8 til øverste kant, til venstre og til højre kant.

Dette gør at knappen bliver placeret øverst i midten. Det virker lidt som et anker hvor man definerer hvor skal knappen hænge fast med et gummibånd.

Det smarte er at knappen nu er korrekt placeret i portræt og i landscape, så drejer man mobilen vises knappen altid øverst i midten.

For at kunne bruge knappen skal vi have givet knappen et navn.

Knappen hedder nu bn_minknap det skal vi bruge i programmet og teksten på knappen er “Tryk”.

Så er vi klar til at bruge knappen i vores program. Knappen hedder bn_minknap og teksten på knappen er “TRYK”.

bn_minknap.setOnClickListener tjekker om om knappen er trykket og udfører det som står i {}.

Når man trykker på knappen skal den skrive på skærmen “Knappen er trykket”.

Vi bruger en Toast som kan vise en tekst på skærmen når man trykker på knappen.

I kan se Toast er rød og der står tryk Alt+Enter, det er fordi vi mangler at importerer Toast funktionen dette sker automatisk når man trykker Alt+Enter.

Toast funktionen er nu aktiv programmet er klar til at blive installeret på mobilen.
Et sidste kik på programmet.

Kik på “Attributes” egenskaberne for knappen der er mange til som kan indstilles her. Farver, tekst, fonte.