web-dev-qa-db-fra.com

Comment démarrer une intention en y passant quelques paramètres?

Je voudrais passer quelques variables dans le constructeur de mon ListActivity

Je commence l'activité via ce code:

startActivity(new Intent (this, viewContacts.class));

Je voudrais utiliser un code similaire, mais passer deux chaînes au constructeur. Comment est-ce possible?

97
Pentium10

Afin de transmettre les paramètres, vous créez une nouvelle intention et mettez une mappe de paramètres:

Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("firstKeyName","FirstKeyValue");
myIntent.putExtra("secondKeyName","SecondKeyValue");
startActivity(myIntent);

Afin d’obtenir les valeurs des paramètres dans l’activité démarrée, vous devez appeler le get[type]Extra() avec le même objectif:

// getIntent() is a method from the started activity
Intent myIntent = getIntent(); // gets the previously created intent
String firstKeyName = myIntent.getStringExtra("firstKeyName"); // will return "FirstKeyValue"
String secondKeyName= myIntent.getStringExtra("secondKeyName"); // will return "SecondKeyValue"

Si vos paramètres sont ints, vous utiliseriez plutôt getIntExtra(), etc. Maintenant, vous pouvez utiliser vos paramètres comme vous le feriez normalement.

228
Xitcod13

Je pense que tu veux quelque chose comme ça:

Intent foo = new Intent(this, viewContacts.class);
foo.putExtra("myFirstKey", "myFirstValue");
foo.putExtra("mySecondKey", "mySecondValue");
startActivity(foo);

ou vous pouvez les combiner en un premier paquet. Les routines getExtra () correspondantes existent pour l'autre côté. Voir le sujet de l'intention dans le guide de développement pour plus d'informations.

41
RickNotFred