Was ist eine bundle
in einer Android-Anwendung? Wann soll man es benutzen?
android
bundle
android-bundle
Benutzer
quelle
quelle
Übergeben Sie Daten zwischen Aktivitäten mithilfe von
Bundle
undIntent
Objekten.Sie erstellen zuerst ein
Bundle
ObjektVerknüpfen Sie dann die darin gespeicherten Zeichenfolgendaten
anystring
mit dem Bündelschlüssel"myname"
Erstellen Sie nun ein
Intent
ObjektÜbergeben Sie das Bundle-Objekt
b
an die Absichtund starten Sie die zweite Aktivität
In der zweiten Aktivität müssen wir auf die Daten zugreifen, die von der ersten Aktivität übergeben wurden
Jetzt müssen Sie die Daten aus dem Bundle abrufen
Schließlich erhalten Sie den Wert der Zeichenfolgendaten, die dem benannten Schlüssel zugeordnet sind
"myname"
quelle
Ich muss hinzufügen, dass Bundles von Aktivitäten verwendet werden, um Daten in Zukunft an sich selbst weiterzugeben.
Wenn sich der Bildschirm dreht oder wenn eine andere Aktivität gestartet wird, wird die Methode
protected void onSaveInstanceState(Bundle outState)
aufgerufen und die Aktivität zerstört. Später wird eine weitere Instanz der Aktivität erstellt undpublic void onCreate(Bundle savedInstanceState)
aufgerufen. Wenn die erste Instanz der Aktivität erstellt wird, ist das Bundle null. und wenn das Bundle nicht null ist, setzt die Aktivität einige Geschäfte fort, die vom Vorgänger gestartet wurden.Android speichert den Text automatisch in Textfeldern, speichert jedoch nicht alles, und manchmal treten subtile Fehler auf.
Das häufigste Anti-Pattern ist jedoch die Annahme, dass
onCreate()
dies nur eine Initialisierung ist. Es ist falsch, weil es auch den Zustand wiederherstellen muss.Es besteht die Möglichkeit, dieses Verhalten "Aktivität bei Rotation neu erstellen" zu deaktivieren. Es verhindert jedoch keine Fehler im Zusammenhang mit dem Neustart, sondern erschwert nur deren Erwähnung.
Beachten Sie auch, dass die einzige Methode, deren Aufruf garantiert ist, wenn die Aktivität zerstört werden soll, ist
onPause()
. (Siehe das Diagramm zum Aktivitätslebenszyklus in den Dokumenten.)quelle
A
Bundle
ist einem Java-Map
Objekt sehr ähnlich , das zugeordnet istString
Schlüssel Werten zuordnet. Es wird verwendet, um Informationen zwischen Aktivitäten und anderen Anwendungskomponenten zu übertragen. Es wird auch vom Framework zum Erfassen und Wiederherstellen von Statusinformationen verwendet.Der Grund, warum Android keine einfachen alten
Map
Objekte verwendet, ist, dassMap
es zu flexibel ist. Es kann Objekte enthalten (z. B. E / A-Streams), die nicht serialisiert werden können. DieBundle
API beschränkt die Objekttypen, die einem Bundle hinzugefügt werden können, so, dass der Inhalt des Bundles garantiert serialisierbar ist. Das Android-Framework basiert auf dieser Eigenschaft.Ich schlage vor, dass Sie die Dokumentation zu den Anwendungsgrundlagen lesen . Dies erklärt unter anderem, was Bündel und Absichten sind und wofür sie verwendet werden.
quelle
Bundles können verwendet werden, um beliebige Daten über Absichten von einer Aktivität zu einer anderen zu senden. Wenn Sie eine Absicht senden, werden interessierte Aktivitäten (und andere BroadcastReciever) darüber informiert. Eine Absicht kann ein Bundle enthalten, sodass Sie zusätzliche Daten zusammen mit der Absicht senden können.
Bundles sind Schlüsselwertzuordnungen, also in gewisser Weise wie ein Hash, aber sie sind nicht streng auf eine einzelne String / Foo-Objektzuordnung beschränkt. Beachten Sie, dass nur bestimmte Datentypen als "Paketierbar" betrachtet werden und in der Bundle-API explizit angegeben sind.
quelle
Erstellen Sie einfach ein Bundle,
IN der "this_is_the_next_class.class"
Sie können die Elemente wie folgt abrufen.
quelle
Bundle wird verwendet, um Daten zwischen Aktivitäten zu übertragen. Sie können ein Bundle erstellen und an Intent übergeben, das die Aktivität startet, die dann von der Zielaktivität aus verwendet werden kann.
quelle
Bundle: - Eine Zuordnung von String-Werten zu verschiedenen Parcelable-Typen.
Bundle wird im Allgemeinen zum Übertragen von Daten zwischen verschiedenen Aktivitäten von Android verwendet.
Wenn wir onPause () aufrufen, dann onStop () und dann in umgekehrter Reihenfolge onStop () zu onPause ().
Die gespeicherten Daten, die das System zum Wiederherstellen des vorherigen Status verwendet, werden als "Instanzstatus" bezeichnet und sind eine Sammlung von Schlüssel-Wert-Paaren, die in einem Bundle-Objekt gespeichert sind.
quelle
Das Bundle wird verwendet, um Daten zwischen Aktivitäten auszutauschen und den Status der App in der oncreate () -Methode zu speichern, damit die App weiß, wo sie gestoppt wurde ... Ich hoffe, es hilft :)
quelle
Verwendung von Bundle-Sendedaten von einer Aktivität zu einer anderen Aktivität mit Hilfe eines Intent-Objekts; Bundle enthält die Daten, die ein beliebiger Typ sein kann.
Jetzt erkläre ich, wie man Bundle-Passing-Daten zwischen zwei Aktivitäten erstellt.
Schritt 1: Bei der ersten Aktivität
Schritt 2: Bei der zweiten Aktivität
Ich denke, das ist nützlich für dich ...........
quelle
Das Bundle dient nicht nur zum Übertragen von Daten zwischen zwei verschiedenen Komponenten, sondern vor allem zum Wiederherstellen der gespeicherten Werte, bevor die Aktivität in eine neue Aktivität umgewandelt wird.
wie der Text in einem
EditText
Widget oder die Bildlaufposition von aListView
.quelle
Erste Aktivität:
Zweite Aktivität:
quelle