Jestem bardzo nowy w rozwoju Androida.
Chcę utworzyć i rozpocząć działanie, aby wyświetlić informacje o grze. Pokazuję te informacje, że potrzebuję gameId.
Jak mogę przekazać ten identyfikator gry do działania? Identyfikator gry jest absolutnie niezbędny, więc nie chcę tworzyć ani uruchamiać aktywności, jeśli nie ma ona identyfikatora.
To tak, jakby działanie miało tylko jednego konstruktora z jednym parametrem.
Jak mogę to zrobić?
Dzięki.
android
android-activity
oncreate
VansFannel
źródło
źródło
intent.putExtra(String, Int)
.Po prostu dodaj dodatkowe dane do celu, którego używasz do wywołania swojej aktywności.
W działaniu osoby dzwoniącej:
Wewnątrz onCreate () działania, które wywołujesz:
źródło
Lubię to robić metodą statyczną w drugim ćwiczeniu:
Następnie od pierwszej aktywności (i gdziekolwiek indziej) po prostu:
źródło
String gameId = intent.getStringExtra(EXTRA_EXTERNAL_ID);
byćString gameId = intent.getStringExtra(EXTRA_GAME_ID);
Kod Kotlin:
Rozpocznij
SecondActivity
:Uzyskaj identyfikator w
SecondActivity
:gdzie
gameId
jestString?
(może być pusty)źródło
Istniejące odpowiedzi (przekaż dane w
Intent
przekazanym dostartActivity()
) pokazują normalny sposób rozwiązania tego problemu. Istnieje inne rozwiązanie, którego można użyć w dziwnym przypadku, gdy tworzysz działanie, które zostanie uruchomione przez inną aplikację (na przykład jedno z działań edycyjnych we wtyczce Tasker ), a zatem nie kontrolujesz,Intent
który uruchamiaActivity
.Możesz utworzyć klasę podstawową,
Activity
która ma konstruktor z parametrem, a następnie klasę pochodną, która ma domyślny konstruktor, który wywołuje konstruktor klasy podstawowej o wartości, tak jak:Jeśli musisz wygenerować parametr, aby przekazać go do konstruktora klasy podstawowej, po prostu zastąp zakodowaną wartość wywołaniem funkcji, która zwraca poprawną wartość do przekazania.
źródło