Skocz do zawartości
basseMaG

Przekazywanie danych między klasami

    Rekomendowane odpowiedzi

    Czołem!

    Mam klasę A, a w niej zmienną int o nazwie info.

    W zależności od wybranego przycisku klasa przenosi do innej aktywności i zmienia wartość info (switch..case).

    W nowej aktywności (nowej klasie) nie widać wartości info "info cannot be resolved to a variable", czyli nie zadeklarowano zmiennej o nazwie info.

    Jak przenieść te dane? Zmienna jest public, ale mimo to nie jest widoczna.

    public Class A extends B również nie daje efektu.

    OT:

    Dobrze, że w końcu powstał taki dział ;) W końcu wypowiedź byłego moderatora

    Zamykam tylko dlatego, że temat wymaga od Ciebie jedynie podstawowych umiejętności programistycznych i przede wszystkim myślenia!

    Zapraszam też do działu dla początkujących, bo wygląda na to, że nie ogarniasz.

    ma sens ;]

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szamot

    SharedPreferences

    dodajesz tak:

    SharedPreferences load = getSharedPreferences("Ustawienia", 0);
    	    SharedPreferences.Editor edit = load.edit();
    	    edit.putInt("info", info);
    	    edit.commit();

    wczytujesz tak:

    SharedPreferences load = getSharedPreferences("Ustawienia", 0);
           info = load.getInt("info", "");

    oczywiście w obu klasach musisz dodać zmienną info i zaimportować:

    import android.content.SharedPreferences;

    Edytowane przez szamot

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    A nie ma prostszego sposobu? Tam tworzymy plik, wpisujemy dane w nowej klasie wczytujemy plik odczytujemy dane. Głupie, kiedy człowiek chce przekazać 1 cyfrę..

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szamot

    Możesz jeszcze z intentem przekazać za pomocą putExtra

    Intent A = new Intent(this, B.class);
           	A.putExtra("info", info);

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Użyj intenta :)

    Aby złapać go w nowy activity użyj

    getIntent().getExtras().getString("nazwa extra jaką podałes");

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    Activity i klasa to nie jest to samo. Doczytajcie.

    Wysyłane z mojego Nexus 7 za pomocą Tapatalk 2

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Ale dał przykład z activity :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    Ja nie czepiam się ciebie :) Zwyczajnie zwracam uwagę, na konieczność zrozumienia tych pojęć i różnicy pomiędzy nimi :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Rozróżniam klasę i aktywność ;) Niestety z obydwoma sposobami mam problem.

    Sposób z SharedPreferences:

    The method getInt(String, int) in the type SharedPreferences is not applicable for the arguments (String, String)

    wszystko wykonane według instrukcji.

    Metoda z intencją, przycisk nie reaguje na polecenie.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x