22 Mrz

Wie du Spinner verwenden kannst (Android App Tutorial)

In diesem Android Studio Tutorial zeige ich, wie du Spinner verwenden kannst, um eine Auswahl des App-Benutzers auszuwerten. Dafür nehmen wir wieder eine Veränderung der Hintergrundfarbe vor – entsprechend der Auswahl.

Wie du Spinner verwenden kannst

 

Grundsätzliches zu diesem Spinner-Tutorial

Bei dieser Beispiel-App (genannt FarbSpinner) habe ich mich wieder für API 16 (Android 4.1, Jelly Bean) und eine „Empty Activity“ entschieden. Sie beinhaltet (vom Layout abgesehen) lediglich einen Spinner. 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 noch mehr gekürzt als bei den anderen. Wenn du Fragen hast, kannst du diese gerne als Kommentar stellen. 😉

FarbSpinner

 

Die activity_main.xml

Für diese App habe ich das per Default eingestellte relative Layout beibehalten. Damit wir Zugriff auf die Hintergrundfarbe haben, wird dem Layout die ID „@+id/layout“ zugewiesen. Ansonsten ist die activity_main.xml sehr unspektakulär und besteht nur aus einem Spinner:

<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:spinnerMode="dropdown" />

 

Die /res/values/strings.xml

Die strings.xml soll in unserem Fall das enthalten, was wir später in der Spinner-Auswahl sehen wollen. Dafür erstellen wir sinnvollerweise einen String-Array:

String-Array "werte" in der strings.xml

String-Array „werte“ in der strings.xml

 

Die MainActivity.java

Der Spinner wird in der onCreate-Methode eindeutig identifiziert. Unsere App benötigt zudem einen Array-Adapter – das ist die Brücke zwischen dem Spinner und dem String-Array „werte“ aus der strings.xml.  Hier zeigt sich jetzt der Vorteil des String-Arrays: ArrayAdapter.createFromResource spart Arbeit, Code und Zeit. Alternativ könnte man ArrayAdapter.add verwenden, müsste dann aber jedes einzelne Item hinzufügen – unnötiger Aufwand.

Damit die App registriert, wenn etwas ausgewählt wurde, fügen wir noch einen OnItemSelectListener hinzu.

spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.werte, android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);

In der Methode onItemSelected erstellen wir wieder eine Switch-Anweisung. Als Vergleichsobjekt verwenden wir eine String-Version des Items an der ausgewählten Position – also den jeweilige String aus dem String-Array. Ergebnis: Je nachdem, welches Item ausgewählt wurde, wird die Hintergrundfarbe der App verändert.

switch (spinner.getItemAtPosition(position).toString()) {
    case ("weiss"):
        layout.setBackgroundColor(Color.WHITE);
        break;
    case ("rot"):
        layout.setBackgroundColor(Color.RED);
        break;
    case ("gelb"):
        layout.setBackgroundColor(Color.YELLOW);
        break;
    case ("blau"):
        layout.setBackgroundColor(Color.BLUE);
        break;
}

 

Alternative: Anderer spinnerMode

Für das Beispiel habe ich den spinnerMode in der activity_main.xml auf „dropdown“ gesetzt. Es gibt allerdings noch eine andere Möglichkeit: Der Spinner kann stattdessen als Dialog geöffnet werden. Dafür einfach spinnerMode auf „dialog“ setzen.

Spinner: Links Dropdown, rechts Dialog

Spinner: Links Dropdown, rechts Dialog

 



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