,
19 Feb

Wie du per Switch den gedrückten Button herausfinden kannst (Android App Tutorial)

In diesem Android Studio Tutorial zeige ich, wie du per Switch-Anweisung herausfinden kannst, welcher Button gedrückt wurde. Um nicht schon wieder mit Textfeldern zu arbeiten, verändern wir diesmal die Hintergrundfarbe der App auf Knopfdruck.

Wie du per Switch den gedrückten Button herausfinden kannst

Grundsätzliches zur App

Bei dieser Beispiel-App (genannt SwitchButtons) habe ich mich wieder für API 16 (Android 4.1, Jelly Bean) und eine „Empty Activity“ entschieden. Sie beinhaltet vier Buttons. 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 vertikales lineares Layout mit 4 Buttons: bWeiss, bRot, bBlau, bGruen. Das lineare Layout bekommt die ID „@+id/linearlayout“ zugewiesen. Dies ist wichtig, damit wir später darauf zugreifen können, um den Hintergrund zu ändern.

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Weiss"
    android:id="@+id/bWeiss"
    android:layout_gravity="center_horizontal" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Rot"
    android:id="@+id/bRot"
    android:layout_gravity="center_horizontal" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Blau"
    android:id="@+id/bBlau"
    android:layout_gravity="center_horizontal" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Grün"
    android:id="@+id/bGruen"
    android:layout_gravity="center_horizontal" />
SwitchButtons: Vier Buttons, noch ohne Aufgabe

SwitchButtons: Vier Buttons, noch ohne Aufgabe

 

 

Die MainActivity.java

So sollte die Methode onCreate aussehen

So sollte die Methode onCreate aussehen

Wenn alle onClickListener gesetzt sind, lassen wir die Methode onClick durch Android Studio implementieren und nehmen sie uns vor.

Die App soll auf die Buttons reagieren und die Hintergrundfarben entsprechend setzen. Und dafür benutzen wir eine Switch-Anweisung.

Hier kommt zunächst die ID des linearen Layouts ins Spiel.

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearlayout);

Und dann widmen wir uns der Switch-Anweisung. Der Methode onClick wird ein View v übergeben. Dabei handelt es sich um den gedrückten Button. Und wir prüfen jetzt mit v.getId(), welche ID der gedrückte Button hat. Je nach gedrücktem Button wird die Hintergrundfarbe des linearen Layouts gesetzt. Die case-Blöcke werden jeweils mit einem „break“ beendet.

switch (v.getId()) {
    case R.id.bWeiss:
        linearLayout.setBackgroundColor(Color.WHITE);
        break;
    case R.id.bRot:
        linearLayout.setBackgroundColor(Color.RED);
        break;
    case R.id.bBlau:
        linearLayout.setBackgroundColor(Color.BLUE);
        break;
    case R.id.bGruen:
        linearLayout.setBackgroundColor(Color.GREEN);
        break;
}

Um die zu setzende Farbe anzugeben, verwende ich hier Color.FARBNAME. Auch möglich sind z.B. RGB-Werte (siehe auch Dokumentation):

case R.id.bRot:
    linearLayout.setBackgroundColor(Color.rgb(255,0,0));

 

Und so sieht unsere App dann aus:

Farbe wechselt je nach Button

Farbe wechselt je nach Button