In vielen Apps (Kalender, Laufwerk, Play Store) wird das Symbol in der Titelleiste zu einer Zurück-Schaltfläche, wenn Sie auf eine Schaltfläche tippen und eine neue Aktivität eingeben. Bei der von mir erstellten App ist dies jedoch nicht der Fall. Wie kann ich mit diesem Symbol zum vorherigen Bildschirm zurückkehren?
108
Antworten:
Es gibt zwei einfache Schritte, um eine Zurück-Schaltfläche in der Titelleiste zu erstellen:
Machen Sie zunächst das Anwendungssymbol mit dem folgenden Code in der Aktivität anklickbar, in deren Titelleiste Sie eine Zurück-Schaltfläche haben möchten:
Nachdem Sie den obigen Code hinzugefügt haben, wird links neben dem Anwendungssymbol ein Zurückpfeil angezeigt.
Zweitens müssen Sie nach dem oben beschriebenen Vorgang noch Code erstellen, der das Klickereignis nutzt. Beachten Sie dazu, dass beim Klicken auf das Anwendungssymbol eine
onOptionsItemSelected
Methode aufgerufen wird. Um zur vorherigen Aktivität zurückzukehren, fügen Sie diese Methode zu Ihrer Aktivität hinzu und fügen SieIntent
Code ein, der Sie zur vorherigen Aktivität zurückführt . Angenommen, die Aktivität, zu der Sie zurückkehren möchten , wird aufgerufenMyActivity
. Um darauf zurückzukommen, schreiben Sie die Methode wie folgt:Das ist es!
(In der Android-Entwickler-API wird empfohlen, mit dem Manifest herumzuspielen und Dinge wie hinzuzufügen
android:parentActivityName
. Aber das scheint für mich nicht zu funktionieren. Das oben Genannte ist einfacher und zuverlässiger.)Und in deiner Aktivität
quelle
Verwenden Sie diesen Code
Danach schreiben Sie diesen Code in
onOptionsItemSelected
Methodequelle
getActionBar()
gibt mir eine Null; weißt du, warum?Ich habe es endlich geschafft, die Schaltfläche Zurück zur Aktionsleiste / Symbolleiste richtig hinzuzufügen
quelle
1.- Fügen Sie die Aktivität zu AndroidManifest.xml hinzu und stellen Sie sicher, dass Sie die Metadaten bereitstellen:
2.- Fügen Sie der onCreate-Methode der Aktivität den folgenden Code hinzu:
3.- Überschreiben Sie onOptionsItemSelected und verwenden Sie die statische Methode NavUtils.navigateUpFromSameTask (), um durch den Stapel zu navigieren.
quelle
Wenn Ihre Aktivität die Aktivität erweitert
Wenn Ihre Aktion AppCompatActivity erweitert
Nichts mehr zu tun Addieren
[OPTIONAL] Um die übergeordnete Aktivität explizit zu definieren, ändern Sie Ihre Manifest.xml wie folgt:
Siehe Festlegen der übergeordneten Aktivität
quelle
Wenn sich Ihre Aktivität erweitert
AppCompatActivity
, müssen Sie dieonSupportNavigateUp()
Methode wie folgt überschreiben :Behandeln Sie Ihre Logik in Ihrer
onBackPressed()
Methode und rufen Sie diese Methode einfach auf,onSupportNavigateUp()
damit die Zurück-Taste am Telefon und der Pfeil in der Symbolleiste dasselbe tun.quelle
Fügen Sie zunächst in der onCreate-Funktion die folgende Zeile hinzu
und fügen Sie dann die folgende Funktion in den Code ein:
quelle
Zuerst müssen Sie diese Codes schreiben
Fügen Sie dann diese Zeile im Manifest hinzu
quelle
Wenn Sie die neue Support-Bibliothek für 5.1 in Android Studio verwenden, können Sie diese stattdessen in Ihrer AppCompatActivity verwenden
Prost.
quelle
Die einfachste Art und Weise und bewährte Verfahren wie Google erklären hier :
1. Fügen Sie einen Elternteil für Ihr Kind hinzu. Aktivität in
AndroidManifest.xml
:2.Aktivieren Sie die Zurück-Schaltfläche in Ihrer childActivity:
Hat für mich gearbeitet, ich hoffe es funktioniert auch für dich.
quelle
Nach einer Zeit, die ich gefunden habe, ist die Themenoption das Hauptproblem in meinem Code. Das Folgende ist der richtige Weg, um die Symbolleiste für mich anzuzeigen
In der AndroidManifest-Datei müssen Sie zuerst Ihren Designstil ändern
dann müssen Sie bei Ihrer Aktivitäts-XML Ihre eigene Symbolleiste wie aufrufen
Und dann sollte diese Symbolleiste in Ihrer Java-Datei von aufgerufen werden
Und für die Symbolleiste, in der U angezeigt wird, sollte die Null überprüft werden, um eine NullPointerException zu vermeiden
Fügen Sie dies für die Heimaktivität wieder hinzu
ODER für Ihre gewünschte Aktivität zurück
quelle
Ich habe so viele komplexe Antworten gesehen, das ist also mein Code. Hier arbeiten. Sie können dies auf zwei Arten erreichen.
1) Stardard Android-Kompatibilität
2) Verwenden Sie ein benutzerdefiniertes Symbol
Wenn Sie Code in Kommentaren verwenden möchten, müssen Sie diese Datei nur in drawable mit dem Namen ic_arrow_white_24dp.xml hinzufügen
Mit diesem Code.
Hoffe es wird einigen Leuten hier helfen!
quelle
Die
ActionBarActivity
leichtgewichtige Version ohne Verwendung hat hier immer noch die gleichen Verhaltensweisen:Verwendung: Setzen Sie
new ToolbarConfigurer(this, (Toolbar) findViewById(R.id.my_awesome_toolbar), true);
einonCreate
.quelle
Sie müssen den unten genannten Code in die Manifestdatei einfügen. Suchen Sie nach der Aktivität, in der Sie die Rückpfeilfunktion hinzufügen möchten. Wenn Sie die finden, dann gut oder erstellen Sie die Aktivität
Fügen Sie dann die folgenden drei Codezeilen dazwischen hinzu.
Und vergessen Sie nicht, diesen Code in onCreate () einzufügen. Methode Ihrer speziellen Aktivität, bei der Sie einen Zurückpfeil benötigen.
So habe ich das Problem gelöst. Vielen Dank.
quelle
In den anderen Antworten wird nicht erwähnt, dass Sie dies auch im XML Ihres
Toolbar
Widgets festlegen können :app:navigationIcon="?attr/homeAsUpIndicator"
Beispielsweise:
quelle
Alles, was Sie im Jahr 2020 tun müssen:
(wenn Sie zur MainActivity zurückkehren möchten)
quelle
Wenn Sie eine ActionBar verwenden, sollten Sie diese Dokumentation nachlesen http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean).
Dann müssen Sie die Methode onOptionsItemSelected (MenuItem) überschreiben und nach dem Ereignis android.R.id.home suchen. Dann wissen Sie, dass der Benutzer auf diese Zurück-Schaltfläche in der Aktionsleiste geklickt hat
quelle
Dies kann auch ohne Code erfolgen, indem eine übergeordnete Aktivität im App-Manifest angegeben wird. Wenn Sie in Aktivität B eine Zurück-Schaltfläche möchten, die zu Aktivität A führt, fügen Sie einfach Aktivität A als übergeordnete Aktivität von Aktivität B im Manifest hinzu.
quelle
Für Kotlin:
quelle
Ich musste einige Antworten mischen, um die richtige Antwort für mich zu erhalten, da meine App 3 Aktivitäten enthält, die jederzeit ausgeführt werden können. Aktivität1> Aktivität2> Aktivität3. Wenn ich etwas an meiner Aktivität3 getan habe, wurde die Zurück-Schaltfläche korrekt auf Aktivität2 zurückgesetzt. Bei Verwendung von Aktivität2 wurde
finish()
jedoch auf Aktivität3 und nicht auf Aktivität1 zurückgegriffen. Und ich erweitere AppCompatActivity. Meine Lösung war also:auf AndroidManifest.xml:
und schließlich die Aktionsschaltfläche in meinem Menü (Aktionsleiste):
Verwenden
NavUtils.navigateUpFromSameTask(this);
hat für mich funktioniert, anstattfinish()
.quelle
Ich teile nur etwas, das mir geholfen hat und für andere nützlich sein kann. Obwohl die meisten Antworten hier richtig sind, hat dies bei Verwendung von
getActionBar().setDisplayHomeAsUpEnabled(true);
nicht funktioniert. Das Problem, das ich hatte, war, dass ich versucht habe, eine zweite Aktivität manuell zu erstellen, aber es gibt weitere Details.Was mein Problem wirklich gelöst hat, war das folgende Tutorial für Android-Entwickler ( https://developer.android.com/training/basics/firstapp/starting-activity ) zum Erstellen einer zweiten Aktivität mit Android Studio-eigenen Tools:
quelle
Sie können auch einfach
onBackPressed()
Ihren onClick-Listener einfügen. Dies bewirkt, dass sich Ihre Schaltfläche wie die Standardschaltflächen "Sichern / Sichern" in Android-Apps verhält!quelle
quelle
Dies funktioniert für mich. Angenommen, es gibt zwei Aktivitäten (Activityone, Activitytwo)
Innerhalb von Activitytwo wird dieser Code verwendet
Auf Activityone
Dies sollte in der zweiten Aktivität in der Manifestdatei enthalten sein
Und das Ergebnis wäre so
quelle
Dies funktioniert für mich getSupportActionBar (). SetDisplayHomeAsUpEnabled (false); Geben Sie hier die Bildbeschreibung ein
quelle