21 Mai

Wie du ArrayAdapter und ListView benutzen kannst (Android App Tutorial)

In diesem Anfängertutorial zeige ich, wie ihr ArrayAdapter und ListView verwendet. Dafür erstellen wir eine App, die eine zufällige Zahl zwischen 1 und x (=angegebene Ganzzahl) ausgibt. Das heißt, außer ArrayAdapter und ListView widmen wir uns eigentlich auch noch Random. Aber nur kurz. 😉

Wie du Array Adapter und ListView in Android benutzen kannst

 

Grundsätzliches zur App

Bei dieser Beispiel-App (genannt Randomizer) habe ich mich wieder für API 16 (Android 4.1, Jelly Bean) und eine „Empty Activity“ entschieden. Dann habe ich noch etwas mit den Farben herumgespielt. 😉

Überblick: Das Layout der Randomize-App

Überblick: Das Layout der Randomizer-App.

Ich gehe davon aus, dass du weißt, wie man eine App erstellt, und werde darauf nicht näher eingehen. Allgemein habe ich den Inhalt dieses Tutorials auf das Nötigste reduziert. Wenn du Fragen hast, kannst du diese gerne als Kommentar stellen. 😉

 

Die activity_main.xml

Die App verfügt über ein lineares Layout mit vertikaler Orientierung, das ein TextView, ein EditText, einen Button und ein ListView enthält.

Wichtig ist, dass dem EditText die folgenden Eigenschaften zugewiesen werden:

android:inputType="number"
android:digits="0123456789"
android:singleLine="true"

Das heißt: Als Input sind hier nur Zahlen erlaubt, und zwar ausschließlich „0123456789“. 😉 Da es sich um einen Zufallszahlengenerator handelt, ist das von Vorteil. Weil das EditText einzeilig ist, gibt es nicht das gewohnte Enter-Symbol auf der Tastatur des Smartphones, sondern einen Haken oder eine Schaltfläche mit der Aufschrift „Fertig“.

Wird das EditText als einzeilig definiert, gibt es kein überflüssiges "Enter"-Symbol auf der Tastatur mehr.

Wird das EditText als einzeilig definiert, gibt es kein überflüssiges „Enter“-Symbol auf der Tastatur mehr.

Ansonsten kannst du – designtechnisch – tun, was du willst.  Ich habe beispielsweise den Inhalt des EditText zentriert (android:textAlignment=“center“). Aber kommen wir nun zum Wichtigen: Dem eigentlichen Code.

 

Die MainActivity.java

Dies hier ist die onCreate-Methode:

OnCreate: Hier der Übersichtlichkeit halber in Blöcke aufgeteilt

onCreate: Hier übersichtlich in 3 Blöcke aufgeteilt.

Block 1 ist der Standardkram. Block 3 eigentlich auch. Der für das Adapter/ListView-Tutorial relevante Teil ist Block 2:

Wir benötigen für den ArrayAdapter eine ArrayList, hier werte. Danach erzeugen wir adapter vom Typ ArrayAdapter mit dem Layout simple_list_item1 und der ArrayList werte. Nachdem listView eindeutig identifiziert wurde, wird adapter als ihr Adapter festgelegt.

 

Nun zu onClick – denn hier kommt sozusagen der große Auftritt des Adapters:

OnClick: Zahl berechnen lassen und zu Liste hinzufügen.

OnClick: Zahl berechnen lassen und zu Liste hinzufügen.

Hier wird per Adapter ein String hinzugefügt und dann auf die Änderungen hingewiesen (=Update von ListView getriggert). Der hinzugefügte String ist in diesem Fall der Return-Wert der von mir erstellten randomize-Methode. (Ich habe die Zufallsfunktion in eine eigene Methode gesteckt, um die Arbeitsweise des Adapters besser zeigen zu können.)

 

Als Letztes ist diese randomize-Methode dran:

Randomize: Das hier ist der eigentliche Zufallsgenerator.

Randomizer: Das hier ist der eigentliche Zufallsgenerator.

Wie in onClick zu sehen, wird bei Aufruf von randomize() ein String übergeben – der Wert von editText, also die „Maximalzahl“. Um den Zufallswert ermitteln zu können, muss der String x zuerst in einen Integer umgewandelt werden. Dann wird 1 zum Wert addiert – ansonsten wäre der Zahlenbereich nur 0 bis x-1.  Der Zufallswert wird der Variablen y zugewiesen.

Zurückgegeben wird schließlich der String „[Wert von x] ->  [Wert von y]“. Das sieht dann folgendermaßen aus:

Randomize-App ist fertig: Der Zufallsgenerator generiert.

Randomizer ist fertig: Der Zufallsgenerator generiert zufällige Zahlen.

... noch ein Screenshot als "Beweis": Jeder Wert kriegt seine eigene Zeile.

… noch ein Screenshot als „Beweis“: Jeder Wert kriegt seine eigene Zeile.

Tadaaaaa! Eine App mit einer funktionierenden, einfachen Liste. 🙂

Wichtig: Wenn es ums Generieren von Zufallszahlen geht, ist Random nicht so sicher und unvorhersehbar wie SecureRandom. Für einfache Zwecke und Beispiele wie diese App ist Random allerdings vollkommen ausreichend.

 



🙂 Klick hier für Bücher zum Thema Android-Programmierung!* 🙂