[Android / Java] Ereignisse durch Anzeigefragment wechseln

Einführung

Bei der Entwicklung einer App mit Android Studio (Java) gab es eine Szene, in der ich "Umschalten des Prozesses, wenn die Zurück-Taste des Terminals entsprechend dem angezeigten Fragment gedrückt wird" implementieren wollte. Ich werde veröffentlichen, was ich damals gelernt habe.

Was ich gelernt habe

Beschriebener Teil des Codes

Fragment aus Aktivität anzeigen

Fragmente in dieser Aktivitäts-XML-Datei anzeigen

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">

    <FrameLayout
        android:id="@+id/fl_activity_main"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Die Verarbeitung der Fragmentanzeige wird auf diese Weise durchgeführt

MainActivity.java


//Eine Methode zum Anzeigen des angegebenen Fragments. Übergeben Sie die Instanz des Fragments, das Sie im Argumentfragment anzeigen möchten.
    public void showFragment(Fragment fragment, FragmentManager fragmentManager) {

        fragmentManager
                .beginTransaction()
                .replace(R.id.fl_activity_main, fragment)
                .addToBackStack(null)
                .commit();
    }

Erfassen Sie das angezeigte Fragment und führen Sie ein Ereignis (Prozess) aus.

Wenn diesmal beispielsweise das Fragment, das beim Drücken der Zurück-Taste des Terminals angezeigt wird, "FooFragment" oder "BarFragment" ist, wird die Aktivität beendet.

MainActivity.java


// onBackPressed()Wird aufgerufen, wenn die Zurück-Taste des Terminals gedrückt wird
@Override
    public void onBackPressed() {
        //Holen Sie sich das aktuell angezeigte Fragment hier
        // findFragmentById()Ersetzen Sie die Fragmentanzeige im Argument von()Die ID des Layoutteils, mit dem angezeigt werden soll (Container))Einstellen.
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fl_activity_main);
        
        //Beenden Sie die Aktivität, wenn Sie FooFragment oder BarFragment anzeigen(finish)
        if (fragment instanceof FooFragment || fragment instanceof BarFragment) {
            finish();
        }
        super.onBackPressed();
    }

Schließlich

Es war überraschend einfach zu implementieren, wie bestimmt werden kann, welches Fragment angezeigt wird. Wir werden weiterhin aktiv das ausgeben, was wir gelernt haben.

Referenzmaterial

Vielen Dank! !!

Android's erstes Fragment-Ereignis

Recommended Posts

[Android / Java] Ereignisse durch Anzeigefragment wechseln
Saisonale Anzeige mit Java-Schalter
[Android Studio] Bildschirmübergang über die Schaltfläche [Java]
Zeigen Sie Text zeichenweise in der Oberflächenansicht auf Android an
Java-Switch-Anweisung
[Android / Java] Richten Sie eine Schaltfläche ein, um zu Fragment zurückzukehren
[Android] Überprüfungsdialoganzeige
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden