[Android / Java] Richten Sie eine Schaltfläche ein, um zu Fragment zurückzukehren

Einführung

Bei der Installation der Zurück-Schaltfläche auf dem Fragment Ich habe es geschrieben, indem ich es in der übergeordneten Aktivität definiert und aufgerufen habe. Es ist besser, den Inhalt direkt von jedem Fragment aufzurufen, ohne ihn in Aktivität zu setzen Wie ein erfahrener Ingenieur betonte, werde ich beide Muster als Memorandum belassen.

① So rufen Sie von MainActivity aus auf

MainActivity.java


public class MainActivity extends AppCompatActivity {

//Zurück-Schaltfläche definieren
    public void setupBackButton(boolean enableBackButton) {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(enableBackButton);
    }
}

Fragment1.java


 //Rufen Sie in onCreateView auf
 MainActivity activity = (MainActivity) getActivity();
 activity.setupBackButton(true);
 setHasOptionsMenu(true);  //Für die Verwendung von ActionBar mit Fragment erforderliche Einstellungen

Fragment2.java


 //Rufen Sie in onCreateView auf
 MainActivity activity = (MainActivity) getActivity();
 activity.setupBackButton(false);

② So rufen Sie direkt von Fragment aus auf

Fragment1.java


 //Rufen Sie in onCreateView auf
 .setupBackButton()
 setHasOptionsMenu(true);  //Für die Verwendung von ActionBar mit Fragment erforderliche Einstellungen
 
 //In der Fragmentklasse definiert
 public void setupBackButton() {
        AppCompatActivity activity = (AppCompatActivity) getActivity();
        ActionBar actionBar = activity.getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
  }

Fragment2.java


 
 //Rufen Sie in onCreateView auf
 .hideBackButton()

 //In der Fragmentklasse definiert
 public void hideBackButton() {
        AppCompatActivity activity = (AppCompatActivity) getActivity();
        ActionBar actionBar = activity.getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(false);
  }

der Unterschied

Auf den ersten Blick sieht es gleich aus, aber die Quelle der Aktivität ist anders! ①MainActivity activity = (MainActivity) getActivity(); ②AppCompatActivity activity = (AppCompatActivity) getActivity();

Es wird gesagt, dass es besser ist, das Schreiben unter der Voraussetzung einer bestimmten Aktivität (in diesem Fall Hauptaktivität) zu beenden. Je mehr vorausgesetzte Klassen (von Ihnen definierte Klassen) vorhanden sind, desto schwieriger ist es für Ihren Code, sichere Änderungen vorzunehmen.

Wenn das Erfassungsziel AppCompatActivity ist, handelt es sich um eine Vererbungsquelle, sodass es fast nie geändert wird und sehr sicher ist. Ich möchte ein starker Ingenieur sein, der mit Blick auf die Zukunft umsetzen kann.

Recommended Posts

[Android / Java] Richten Sie eine Schaltfläche ein, um zu Fragment zurückzukehren
Android Drücken Sie einfach eine Taste
Richten Sie eine Java-GUI in einem separaten Thread ein, um die Haupt-GUI beizubehalten
So richten Sie Android OR Mapper "Orma" (Kotlin) ein
So legen Sie Java-Konstanten fest
Erstellen Sie eine Methode, um den Steuersatz in Java zurückzugeben
So richten Sie einen Proxy mit Authentifizierung in Feign ein
So führen Sie einen bestimmten Vorgang aus, wenn die Zurück-Taste im Android-Fragment gedrückt wird
Android-Entwicklung - Versuchen Sie, einen Dialog aufzurufen.
[Ubuntu] Richten Sie einen Nukkit-Server ein
[Wire Mock] Ich möchte einen Stub / Mock-Server in Java einrichten und E2E-Tests durchführen.
[Android] Konvertieren Sie Android Java-Code in Kotlin
So erstellen Sie ein Java-Array
[Android] So erstellen Sie ein Dialogfragment
Minimale Schritte zum Einrichten einer Ruby-Umgebung mit rbenv unter Ubuntu 20.04
So erstellen Sie eine Java-Kalenderzusammenfassung
Konvertieren Sie alle Android-Apps (Java) in Kotlin
[Einführung in Java] So schreiben Sie ein Java-Programm
Wie erstelle ich einen Discord Bot (Java)
So richten Sie kapt ein und verwenden es
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
[Android Studio] Bildschirmübergang über die Schaltfläche [Java]
[Android / Java] Ereignisse durch Anzeigefragment wechseln
[Ruby on Rails] Schaltfläche, um nach oben zurückzukehren
Von Java nach C und von C nach Java in Android Studio
Java (gesetzt)
Beachten Sie, dass Junit 4 zu Android Studio hinzugefügt wurde
Zwei Möglichkeiten, einen Thread in Java + @ zu starten
Schaltfläche [Schienen], um zum Anfang der Seite zurückzukehren
Memorandum zum Bereinigen des Codes Ruby
[Android] So konvertieren Sie eine Zeichenfolge in resourceId
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
So zeigen Sie eine Webseite in Java an
Java Ich habe versucht, einen einfachen Block zu brechen
Um ein VB.net-Programmierer aus einem Java-Shop zu werden
[Android] So erkennen Sie Lautstärkeänderungen (= Drücken der Lautstärketaste)
Code zum Escapezeichen von JSON-Zeichenfolgen in Java
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
[Android] Implementieren Sie schnell die Funktion zum Anzeigen des Passworts
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Die Geschichte des Versuchs, JAVA File zu bedienen
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
So richten Sie jEnv (Mac) ein und bedienen es
Java fügt PowerPoint-Folien ein Textfeld hinzu
Legen Sie das Profilbild eines Benutzers mit CarrierWave fest
So richten Sie JavaED Full Edition (Plejaden) ein
[Android] Zwei Möglichkeiten, einen Bluetooth-Adapter zu erhalten
[Rails] So erstellen Sie eine Twitter-Freigabeschaltfläche
[Android] Richtige Reihenfolge zum Einstellen des Kontexts in Dao
Richten Sie einen Webhook in der benutzerdefinierten App von Shopify ein
Richten Sie mit Vagrant einen virtuellen Cent OS-Server ein
Ich habe versucht, den Block mit Java zu brechen (1)
Bitmap zu groß, um in eine Textur hochgeladen zu werden, die versucht, eine große Bitmap in der Android ImageView festzulegen