Jedna zmienna na wszystkich activity

0

Jest możliwość w kotlinie raz zadeklarować zmienną tak żeby była dostępna na wszystkich activity czy trzeba je zawsze przekazywać przez Intent?

0

mozesz np. w rozszerzonej klasie Application zdefiniowac sobie jakas zmienna publiczna i zrobic w aktivity wywolac
(applicationContext as <TwojaKlasa>).<twojaZmienna>

albo mozesz uzyc jakiegos staticka.

ogolnie zmienne globalne to zly pomysl :)

0

to najlepiej intentem przesylac te zmienne miedzy activity i czemu zmienne globalne to zly pomysl?

0

przekazywanie przez intent zawsze tworzy kopie zmiennej lub obiektu wiec modyfikacja zmiennej w jednym activity nie bedzie widoczna w innym activity. czyli

activity1.zmienna1 = 10

start.activity2.intent(zmienna1)

daje

activity2.kopia_zmienna1 = 10

i jak zmodyfikujesz kopia_zmienna1 = 20 to activity1.zmienna1 nadal bedzie rowna 10

0

napisz w jakim celu chcesz miec ta zmienna?

0

Wszystko zależy od celu tej zmiennej. Obiekt, który może byc lazy zainicjalizowany i dostepny jako jedyna instancja klasy, czyli singleton najlepiej ogarnąć za pomoca jakiejs biblioteka do DI jak Koin (modny wsrod kotlinowcow mobilnych) lub Javowy Dagger 2.

0

ActivityBuilder() posiada dimmer sub-klas

Niestety, są w PL typy, które za wszelką cenę starają się zabłysnąć modyfikując (nieumiejętnie) Androida i wciskając swój shit operatorom, a co za tym idzie - ludziom.

prostytutka nie spocznę dopóki nie zobaczę osóvb odpowiedzialnych za kratkami.

0

Dagger + singleton który trzyma stan lub nadpisz, Application i tam stwórz zmienna lub najgorsza opcja java singleton (enum)
Pamiętaj tylko że android może wyczyścić kontekst więc nie masz gwarancji że zawsze masz dostęp do tej wartości którą umieściłem.

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