Je suis très nouveau sur le développement Android.
Je veux créer et démarrer une activité pour afficher des informations sur un jeu. Je montre ces informations dont j'ai besoin d'un gameId.
Comment puis-je transmettre cet ID de jeu à l'activité? L'ID du jeu est absolument nécessaire, donc je ne veux pas créer ou démarrer l'activité si elle n'a pas l'ID.
C'est comme si l'activité n'avait qu'un seul constructeur avec un seul paramètre.
Comment puis je faire ça?
Merci.
android
android-activity
oncreate
VansFannel
la source
la source
intent.putExtra(String, Int)
.Ajoutez simplement des données supplémentaires à l'intention que vous utilisez pour appeler votre activité.
Dans l'activité de l'appelant:
Dans le onCreate () de l'activité que vous appelez:
la source
J'aime le faire avec une méthode statique dans la deuxième activité:
Ensuite, dès votre première activité (et pour n'importe où ailleurs), il vous suffit de:
la source
String gameId = intent.getStringExtra(EXTRA_EXTERNAL_ID);
êtreString gameId = intent.getStringExtra(EXTRA_GAME_ID);
Code Kotlin:
Démarrez
SecondActivity
:Obtenez l'ID dans
SecondActivity
:où
gameId
estString?
(peut être nul)la source
Les réponses existantes (passez les données dans le
Intent
passé àstartActivity()
) montrent la manière normale de résoudre ce problème. Il existe une autre solution qui peut être utilisée dans le cas étrange où vous créez une activité qui sera démarrée par une autre application (par exemple, l'une des activités de modification dans un plugin Tasker ) et ne contrôle donc pas celuiIntent
qui lance leActivity
.Vous pouvez créer une classe de base
Activity
qui a un constructeur avec un paramètre, puis une classe dérivée qui a un constructeur par défaut qui appelle le constructeur de la classe de base avec une valeur, comme suit:Si vous devez générer le paramètre à transmettre au constructeur de la classe de base, remplacez simplement la valeur codée en dur par un appel de fonction qui renvoie la valeur correcte à transmettre.
la source