308 votes

Démarrer une activité avec un paramètre

Je suis tout nouveau sur le développement Android.

Je veux créer et démarrer une activité pour afficher des informations sur un jeu. Je montre que l’information j’ai besoin d’un gameId.

Comment puis-je transmettre ce jeu ID à 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 le code.

C’est comme si l’activité a obtenu qu' un constructeur avec un paramètre.

Comment puis-je faire ?

Merci.

534voto

Wroclai Points 15042

Mettre un qui est votre identifiant dans la nouvelle .

Puis saisir l’id dans votre nouveau `` :

132voto

DavLink Points 2260

Il suffit d’ajouter des données supplémentaires à l’intention d’appeler votre activité.

Dans l’activité de l’appelant :

À l’intérieur de la onCreate() de l’activité que vous appelez :

Edit : Oups, Charlie Sheen était plus rapide.

3voto

Trebor Rude Points 417

Les questions / réponses (transmettre les données en Intent passée de startActivity()) montrent la voie normale pour résoudre ce problème. Il y a une autre solution qui peut être utilisé dans l'étrange cas où vous êtes en train de créer une Activité qui sera lancé par une autre application (par exemple, l'une de l'édition des activités dans un Tasker plugin) et, par conséquent, ne contrôle pas l' Intent qui lance l' Activity.

Vous pouvez créer une classe de base Activity qui possède un constructeur avec un paramètre, puis une classe dérivée qui a un constructeur par défaut qui appelle à la base le constructeur de la classe avec une valeur, comme suit:

class BaseActivity extends Activity
{
    public BaseActivity(String param)
    {
        // Do something with param
    }
}

class DerivedActivity extends BaseActivity
{
    public DerivedActivity()
    {
        super("parameter");
    }
}

Si vous avez besoin de générer le paramètre à passer à la base le constructeur de la classe, il suffit de remplacer la valeur codée en dur avec un appel de fonction qui renvoie la valeur correcte de passer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X