Android Studio, zapisanie danych

0

Mój program zawiera dwie aktywności, aktywność nr 1 z przyciskiem, który przekierowuje do aktywności numer 2, gdzie jest pole tekstowe do uzupełnienia. Chciałbym żeby to pole tekstowe po powrocie do aktywności pierwszej i ponownym otwarciu aktywności drugiej było uzupełnione napisem, który wcześniej wpisałem. Niestety tak się nie dzieje.Skorzystałem z metody onSaveInstanceState, i także to nie pomogło.

0

A zapisałeś te dane do bundle? Wrzuć kod to będzie łatwiej

0

A użyłeś tego onSavedInstanceState poprawnie? Pokaż kod. Poza tym, to jest 5 sekund w wyszukiwarce: https://stackoverflow.com/a/6525808/1150795

0

Przecież zapisywanie czegokolwiek w onSaveInstanceState() tutaj w niczym nie pomoże. Dane z Bundle są używane przy odtwarzaniu aktywności po zmianie konfiguracji albo śmierci procesu. Wyjście z aktywności czyści jej stan.

@xyz91i Masz w zasadzie 3 wyjścia.

  1. Zapisywać dane w jakimś obiekcie, który żyje dłużej niż aktywność.
  2. Zapisywać dane na stałe np. w SharedPreferences.
  3. Korzystać z dodatkowych danych w przekazanych do Intent startujących drugą aktywność i odbierać je w pierwszej aktywności za pomocą startActivityForResult() + onActivityResult().
0

@Michał Sikora: Czy bazy danych wchodzą w grę?

0

Wchodzą, ale to stosowanie armaty do zabicia muchy.

0

@Michał Sikora: Aha, no rozumiem, bo ta aplikacja to miałoby być proste toDoList, i moim problemem było to, że po wpisaniu czegoś w nowej aktywności, po powróceniu do aktywności początkowej, i ponowne otwarcie aktywności gdzie zapisywaliśmy nasze notatki, te właśnie wpisane wcześniej notatki nie były widoczne. Dziwiło mnie dlaczego tak się dzieje, ale teraz mam rozumieć, że w takim przypadku aktywność nie jest niszczona, tylko po prostu czyszczony jest stan.

1
xyz91i napisał(a):

w takim przypadku aktywność nie jest niszczona, tylko po prostu czyszczony jest stan.

Aktywność jest niszczona i jej stan jest czyszczony.

Natomiast do tego co opisałeś, to baza danych powinna być dobrym wyjściem, zakładając że takich notatek może być wiele.

0

@Michał Sikora: Okej, bo właśnie przerabiam książkę o Androidzie i tam był podany przykład użycia funkcji onSaveInstanceState oraz onCreate, których używaliśmy by zapisać dane w przypadku niszczenia aktywności, na przykład poprzez obrót ekranu, albo zadziałanie jakieś innej aplikacji. Mam rozumieć, że w takich przypadkach stan tych aplikacji nie jest czyszczony, skoro możemy wcześniej wprowadzone dane zapisać w wymiennionych wyżej funkcjach.

0

onSavedInstanceState() służy do przechowywania małych ilości danych w przypadkach, gdy aktywność jest zniszczona niejako nieintencjonalnie. Mam na myśli przez system, czyli tak jak napisałeś przy zmiane konfiguracji lub w przypadku śmerci procesu.

Tutaj masz w miarę ok rozpisane, jak można przechowywać dane w różny sposób – https://developer.android.com/topic/libraries/architecture/saving-states.

1 użytkowników online, w tym zalogowanych: 0, gości: 1