Wie generiere ich zufällige Zahlen in einer Android Applikation?
Aufgabe:
Es gibt einen "Run" Button. Wenn er gedrückt wird, sollen in einer Endlosschleife zufällige Zahlen generiert werden.
Es gibt einen "Stop" Button. Wenn er gedrückt wird, soll der Vorgang (Generierung) beendet werden.
Es gibt ein Feld (textView), wo die Zahlen angezeigt werden.
Ich habe nur rudimentäre Ahnung von Android (im Zusammenhang mit Kotlin) und habe es so lösen wollen:
button.setOnClickListener {
run()
}
fun run() {
val number = 0
while (true) {
number = kotlin.random.Random.nextInt()
textView.text = number.toString()
Thread.sleep(1000)
}
}
1 Antwort
Statt einer Endlosschleife mit sleep-Aufruf (der den aktuellen Thread stoppt), würde ich einen TimerTask periodisch laufen lassen.
Je Lauf wird ein boolsches Feld (shouldStop) geprüft, welches bei Klick auf den Stop-Button seinen Zustand ändert. Ist der Wert false, wird eine Zufallszahl generiert und an einen String gehängt (verwende dafür einen StringBuilder). Ist der Wert true, wird der Timer gestoppt und der zusammengebaute String in das Textfeld gesetzt.
Bezogen auf den Zufallsgenerator solltest du das Random-Objekt nur einmal erzeugen (bspw. bei Klick auf den Startbutton). Den Rest erledigt nextInt je Timer-Aufruf.
Danke für den Hinweis.
Da wir uns auch mit Coroutinen beschäftigt haben, habe ich's damit lösen können.