Wenn wir zwei Aktivitäten haben:
- Liste der Dateien und letzte Änderungszeit
- Dateibearbeitungsaktivität
Ein Benutzer wählt eine Datei aus der Liste aus und wird zur Dateibearbeitungsaktivität weitergeleitet. Nach Abschluss der Bearbeitung drückt der Benutzer die Zurück-Taste, um zur Dateiliste zurückzukehren.
Die Liste wird nicht neu geladen und daher wird ein falscher Wert für die Änderungszeit der gerade bearbeiteten Dateien angezeigt.
Wie wird die Dateiliste nach dem Drücken der Zurück-Taste ordnungsgemäß aktualisiert?
In diesem Beispiel wird davon ausgegangen, dass keine Datenbank verwendet wird, sondern nur ein ArrayAdapter.
Antworten:
Eine Möglichkeit wäre, den onResume Ihrer ersten Aktivität zu verwenden.
Oder Sie können Aktivität für Ergebnis starten:
In secondActivity, wenn Sie Daten zurücksenden möchten:
Wenn Sie keine Daten zurückgeben möchten:
Schreiben Sie nun in Ihrer FirstActivity-Klasse den folgenden Code für die
onActivityResult()
Methodequelle
onResume
nicht für mich angerufen, eine Idee warum? ( Ich habe es versuchtonRestart
undonPause
auch, aber keiner von ihnen hat nicht angerufen )Ich denke, onRestart () funktioniert dafür besser.
Sie können in onRestart () codieren, was Sie tun möchten, wenn die Aktivität neu gestartet wird (erneut aufgerufen über die Ereignis-Zurück-Taste).
Wenn Sie beispielsweise dasselbe tun möchten wie in onCreate (), fügen Sie den Code in onRestart () ein (z. B. Rekonstruktion der Benutzeroberfläche mit den aktualisierten Werten).
quelle
in der Hauptsache:
quelle
Ich würde empfehlen, die
onResume()
Methode in Aktivität Nr. 1 zu überschreiben und dort Code zum Aktualisieren Ihres Array-Adapters einzuschließen. Dies erfolgt mithilfe von[yourListViewAdapater].notifyDataSetChanged();
Lesen Sie dies, wenn Sie Probleme beim Aktualisieren der Liste haben: Aktualisierung der Android-Listenansicht
quelle
Wenn Sie frühere Aktivitäten aktualisieren möchten, sollte diese Lösung funktionieren:
In der vorherigen Aktivität, in der Sie aktualisieren möchten:
quelle
Ich habe nur eine Favoriten-Kategorie. Wenn ich also auf das Element aus den Favoriten klicke, werden solche Informationen angezeigt. Wenn ich es nicht mag, sollte dieses Element aus den Favoriten gelöscht werden. Dafür aktualisiere ich die Datenbank und setze sie auf Adapter (für Recycling-Ansicht) werde mein Problem und meine Lösung verstehen]
quelle
Verwenden Sie in der vorherigen Aktivität diesen Code. Dies führt zu einem reibungslosen Übergang und lädt die Aktivität neu, wenn Sie durch Drücken der Zurück-Taste zurückkehren.
quelle
Wenn Sie einen Rückruf aus der Bearbeitungsaktivität (mit onActivityResult) nicht bearbeiten, würde ich lieber die Logik verwenden, die Sie in onStart (oder möglicherweise in onRestart) erwähnt haben, da es in onResume nur wie ein Overkill erscheint, da Änderungen erst danach auftreten onStop.
Machen Sie sich auf jeden Fall mit vertraut dem Aktivitätslebenszyklus . Beachten Sie außerdem die Methoden onRestoreInstanceState und onSaveInstanceState, die im hübschen Lebenszyklusdiagramm nicht angezeigt werden.
(Es lohnt sich auch zu überprüfen, wie das Notepad-Lernprogramm mit Ihren Aufgaben umgeht, obwohl eine Datenbank verwendet wird.)
quelle
Der beste Weg dorthin ist die Verwendung
quelle
Versuche dies
oder in Fragment
Und fügen Sie diese Methode Ihrem onBackPressed () wie hinzu
Das ist es...
quelle
quelle