Java Android przekazywanie danych pomiędzy Activity

0

Witam, mam problem z pewnym mechanizmem. Na przykładzie postaram się opisać, o co mi chodzi. Wyobraźmy sobie pewien mechanizm. Wyobraźmy sobie aplikacje, w której w głównym oknie (MainActivity) użytkownik w RadioGroup ma do wyboru poszczególnie państwa, np. Polska, USA, Niemcy, itd. Jeśli użytkownik wybierze np. Polska, otwiera się nowe okno w którym ma dane np. Stolica: Warszawa, Waluty: Złoty, id. Do tej pory robiłem to tak, że dla każdego Państwa robiłem nowe Activity i wypełniałem je odpowiednimi danymi. Przy dużej ilości okien robiło się to kłopotliwe, mało optymalne i tworzyło solidny bałagan. Szczególnie trudne było to, kiedy chciałem zmienić układ we wszystkich Activity, wtedy by wszystkie byly analogiczne, musiałem zmieniać układ w każdym poszczególnym pliku XML.
W tym momencie chciałbym zrobić tak, iż tworze jeden szablon okna a w oknie MainAcivity w w konstrukcji else/if, else/if, gdzie sprawdzamy jaki RadioButton jest zaznaczony otwieramy zawsze to samo okno z parametrami typu string i wtedy nowe okno "wkłada" te stringi w odpowiednie miejsca. Zatem zamiast kilkudziesięciu nowych Activity mamy jedno, przyjmujące odpowiednie parametry w zależności jakie Państwo wybraliśmy. Problem polega jednak na tym, iż nie mam pojęcia jak przekazać te parametry do nowego okna. Czy coś takiego w ogóle jest możliwe? z GÓRY DZIĘKI ZA WSZELKĄ POMOC

0

Cześć!

Bardzo prosto możesz to zrobić:

 
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent)
0

Jeżeli natomiast chcesz wyciągnąć te dane z Twojego drugiego Activity robisz coś takiego:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("EXTRA_SESSION_ID");
}
0

dzięki piękne za podpowiedź, tyle mi wystarczy, dalej idąc tym tropem dogrzebałem sobie w Internecie i śmiga, mogę działać dalej,
dzięki, Pozdrawiam

0

Skorzystam i dokleję jeszcze jedno pytanie żeby nie robić podobnych postów

  • Kilka activity przychodzimy po kolei układając playliste
    np 1 dodaje plik to listy plików
    2 ustala czas dla poszczególnych plików
    3 efekt przejścia .... itp w rezultacie zbiera mi się kilka tablic lub list
    gdzie je trzymać tak żeby dane dało się zapisywać/odczytywać i wymieniać pomiędzy activity
1

Wtedy albo stosujesz singleton, w którym przechowujesz te dane (rozwiązanie raczej średnie) albo w wersji lepszej (ale bardziej pracochłonnej) zapisujesz dane do bazy danych/serializujesz do pliku i później odczytujesz w razie potrzeby. Możesz też zaimplementować interfejs Parcerable/Serializable (nie polecam, dane przekazywane poprzez intent mają ograniczenia co do rozmiaru).

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