Sou muito novo no desenvolvimento do Android.
Quero criar e iniciar uma atividade para mostrar informações sobre um jogo. Eu mostro essas informações que preciso de um código de jogo.
Como posso passar esse ID do jogo para a atividade? O ID do jogo é absolutamente necessário, por isso não quero criar ou iniciar a atividade se ele não tiver o ID.
É como se a atividade tivesse apenas um construtor com um parâmetro.
Como eu posso fazer isso?
Obrigado.
android
android-activity
oncreate
VansFannel
fonte
fonte
intent.putExtra(String, Int)
.Basta adicionar dados extras ao Intent que você usa para chamar sua atividade.
Na atividade do chamador:
Dentro do onCreate () da atividade que você chama:
fonte
Eu gosto de fazer isso com um método estático na segunda atividade:
Depois da sua primeira atividade (e para qualquer outro lugar), você apenas faz:
fonte
String gameId = intent.getStringExtra(EXTRA_EXTERNAL_ID);
serString gameId = intent.getStringExtra(EXTRA_GAME_ID);
Código Kotlin:
Inicie o
SecondActivity
:Obtenha o ID em
SecondActivity
:onde
gameId
estáString?
(pode ser nulo)fonte
As respostas existentes (passe os dados do
Intent
passado parastartActivity()
) mostram a maneira normal de resolver esse problema. Existe outra solução que pode ser usada no caso ímpar de você criar uma Atividade que será iniciada por outro aplicativo (por exemplo, uma das atividades de edição em um plug-in Tasker ) e, portanto, não controla aIntent
que iniciaActivity
.Você pode criar uma classe base
Activity
que possui um construtor com um parâmetro e, em seguida, uma classe derivada que possui um construtor padrão que chama o construtor da classe base com um valor, da seguinte forma:Se você precisar gerar o parâmetro a ser transmitido ao construtor da classe base, basta substituir o valor codificado por uma chamada de função que retorne o valor correto a ser transmitido.
fonte