Activities unter Android

Eine „Activity“ (im folgenden Aktivität) ist ein grundlegender Baustein in der Android-App-Entwicklung und repräsentiert eine einzelne Bildschirmansicht oder Benutzeroberfläche (UI) in einer Android-Anwendung. Jede Aktivität stellt eine unabhängige Interaktionseinheit dar und kann vom Benutzer gestartet werden, um bestimmte Aktionen auszuführen oder Informationen anzuzeigen.

In einfachen Worten: Stell dir eine Android-App wie ein Buch vor, und jede Aktivität ist wie eine einzelne Seite in diesem Buch. Jede Seite hat ihren eigenen Inhalt und ihre eigene Funktionalität, aber sie sind alle Teil desselben Buches (also der App).

Eine Activity erstellen

Normalerweise erstell Android Studio beim Erstellen einer App automatisch eine Aktivität, außer man hat dies vorher abgelehnt. Danach entsteht dieser Java Code automatisch MainActivity.java

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Hier wird die Layout-Datei "activity_main.xml" als UI für diese Aktivität gesetzt
        setContentView(R.layout.activity_mein);
    }
}

Und dieser XML-Code als Layout unter res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

… und natürlich noch ein Eintrag in der Android Manifest, der diese Activity repräsentiert.

Um eine neue Aktivität zu erstellen, kann man einen Rechtsklick auf seinem App-Package oder einer Java Klasse machen, dann „New“ -> „Activity“ -> „Gallery…“ -> „Empty Views Activity“. Anschließend der neuen Activity noch einen Namen geben und dann war es das auch schon.

Eine Activity von einer anderen Activity oder einem Service aufrufen

Damit wir zwischen den unterschiedlichen Bildschirmen wechseln können, benötigt es einige wenige Zeilen Code, um den neuen Bildschirm anzuzeigen. Angenommen, du hast eine Aktivität mit dem Namen MainActivity und eine weitere Aktivität mit dem Namen DetailActivity. In der MainActivity möchten wir zu DetailActivity navigieren und einige Daten übergeben.

Dazu benötigen wir in der MainActivity die folgenden Zeilen

// Daten, die an die DetailActivity übergeben werden sollen
String name = "John Doe";
int age = 25;
// Erstelle einen Intent, um zur DetailActivity zu navigieren
//Unsere Activity möchte DetailActivity öffnen
Intent intent = new Intent(MainActivity.this, DetailActivity.class);
//Zusätzliche Daten hinterlegen
intent.putExtra("name", name); 
intent.putExtra("age", age);
//Activity starten
startActivity(intent);

Dann können wir in der DetailActivity auf unsere übergebenen Daten ganz einfach zugreifen:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class DetailActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        // Daten von der StartActivity abrufen
        Intent intent = getIntent();
        String name = intent.getStringExtra("name");
        int age = intent.getIntExtra("age", 0); // 0 ist der Standardwert, falls der Schlüssel nicht gefunden wird

        // Die empfangenen Daten anzeigen
        TextView nameTextView = findViewById(R.id.nameTextView);
        TextView ageTextView = findViewById(R.id.ageTextView);

        nameTextView.setText("Name: " + name);
        ageTextView.setText("Alter: " + age);
    }
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert