Co to jest bundle
w aplikacji na Androida? Kiedy go używać?
android
bundle
android-bundle
Użytkownik
źródło
źródło
Przekaż dane między czynnościami za pomocą
Bundle
iIntent
obiektów.Najpierw utwórz
Bundle
obiektNastępnie powiąż dane łańcuchowe przechowywane w
anystring
kluczu pakietu"myname"
Teraz stwórz
Intent
obiektPrzekaż obiekt pakietu
b
do celui rozpocznij drugą aktywność
W drugim działaniu musimy uzyskać dostęp do danych przekazanych z pierwszego działania
Teraz musisz pobrać dane z pakietu
Na koniec uzyskaj wartość danych ciągu powiązanych z kluczem o nazwie
"myname"
źródło
Muszę dodać, że pakiety są wykorzystywane przez działania do przekazywania danych sobie w przyszłości.
Gdy ekran się obraca lub gdy uruchamiane jest inne działanie, metoda
protected void onSaveInstanceState(Bundle outState)
jest wywoływana, a działanie jest niszczone. Później tworzona jest kolejna instancja działania orazpublic void onCreate(Bundle savedInstanceState)
jest wywoływane. Po utworzeniu pierwszego wystąpienia działania pakiet ma wartość NULL; a jeśli pakiet nie ma wartości zerowej, działalność kontynuuje część działalności rozpoczętej przez jej poprzednika.Android automatycznie zapisuje tekst w polach tekstowych, ale nie zapisuje wszystkiego i czasami pojawiają się subtelne błędy.
Najczęstszym anty-wzorcem jest jednak założenie, że
onCreate()
właśnie inicjuje. To jest złe, ponieważ musi także przywrócić stan.Istnieje możliwość wyłączenia tego zachowania polegającego na ponownym tworzeniu aktywności podczas obracania, ale nie zapobiegnie to błędom związanym z ponownym uruchomieniem, a jedynie utrudni ich wspomnienie.
Zauważ również, że jedyną metodą, której wywołanie jest gwarantowane, gdy działanie ma zostać zniszczone, jest
onPause()
. (Zobacz wykres cyklu życia aktywności w dokumentach.)źródło
A
Bundle
jest bardzo podobny doMap
obiektu Java, który mapujeString
klucze na wartości. Służy do przekazywania informacji między działaniami a innymi komponentami aplikacji. Jest również wykorzystywany przez środowisko do przechwytywania i przywracania informacji o stanie.Android nie używa
Map
do tego zwykłych starych obiektów, ponieważMap
jest zbyt elastyczny; może zawierać obiekty (takie jak np. strumienie we / wy), których nie można serializować.Bundle
API ogranicza typy obiektów, które mogą być dodawane do wiązki w taki sposób, że zawartość wiązki są gwarantowane być możliwy do serializacji. Struktura systemu Android opiera się na tej właściwości.Sugeruję przeczytanie dokumentacji na temat Podstawy aplikacji . To wyjaśnia między innymi, jakie są pakiety i zamiary i do czego są używane.
źródło
Pakiety mogą służyć do wysyłania dowolnych danych z jednego działania do drugiego za pomocą Intencji. Gdy transmitujesz zamiar, zainteresowane działania (i inne BroadcastRecievers) zostaną o tym powiadomione. Intencja może zawierać pakiet, dzięki czemu można wysłać dodatkowe dane wraz z intencją.
Pakiety są odwzorowaniami klucz-wartość, więc w pewnym sensie przypominają skrót, ale nie są ściśle ograniczone do pojedynczego odwzorowania obiektu String / Foo. Pamiętaj, że tylko niektóre typy danych są uważane za „możliwe do paczkowania” i są wyraźnie określone w interfejsie API pakietu.
źródło
Po prostu stwórz pakiet,
W „this_is_the_next_class.class”
Możesz odzyskać takie przedmioty.
źródło
Pakiet służy do przekazywania danych między działaniami. Możesz utworzyć pakiet, przekazać go do Intent, który rozpoczyna działanie, które następnie można wykorzystać z działania docelowego.
źródło
Pakiet: - Odwzorowanie wartości ciągów na różne typy działek.
Pakiet jest zwykle używany do przesyłania danych między różnymi działaniami Androida.
kiedy wywołujemy onPause (), następnie onStop (), a następnie w odwrotnej kolejności onStop () do onPause ().
Zapisane dane, których system używa do przywrócenia poprzedniego stanu, nazywane są „stanem instancji” i są zbiorem par klucz-wartość przechowywanych w obiekcie pakietu.
źródło
Pakiet służy do udostępniania danych między działaniami oraz do zapisywania stanu aplikacji w metodzie oncreate (), dzięki czemu aplikacja dowie się, gdzie została zatrzymana ... Mam nadzieję, że to pomoże :)
źródło
użycie pakietu wysyła dane z jednego działania do drugiego za pomocą obiektu docelowego; Pakiet zawiera dane dowolnego typu.
Teraz mówię, jak utworzyć pakiet przekazywania danych między dwoma działaniami.
Krok 1: Przy pierwszej aktywności
Krok 2: Przy drugiej aktywności
Myślę, że jest to przydatne dla Ciebie ...........
źródło
Pakiet służy nie tylko do przesyłania danych między dwoma różnymi komponentami, ale co ważniejsze, służy do przywracania wartości przechowywanych przed zniszczeniem działania do nowego działania.
takich jak tekst w
EditText
widżecie lub pozycja przewijania wListView
.źródło
Pierwsza aktywność:
Druga aktywność:
źródło