Passage de données entre activités lors d'une intention

 

Il est possible d'envoyer ou de retourner des valeurs entre les activités, nous passerons ses données via l'instance de l'intention en cours entre ces deux activités. Plus exactement via la zone data ou extra data.

Dans l'activité qui vient de créer l'intention, rien de plus simple pour retrouver l'instance de l'intention, mais dans l'activité lancée suite à une intention, il faudra utiliser la méthode getIntent(), méthode permettant de récupérer l'intention à l'origine de notre activité.

 

Ensuite, connaissant l'instance de l'intention, nous pourrons lire ou envoyer les données:

Soit dans l'extra data

Pour positionner une valeur

Pour cela, nous utiliserons les méthodes putExtra ("clef", "valeur") pour envoyer les données dans l'intention

  • putExtra (String name, String value),
  • putExtra (String name, int value),
  • et tous les autres formats possibles...

Exemple: i.putExtra("MaClef", "MaValeur"); avec i l'instance de l'intention.

Mais il sera aussi possible d'envoyer/recevoir un bundle.

Bundle bundleExtras = new Bundle();

extras.putInt("id", 10);
bundleExtras.putString("nom", “Durand”);

//Attachons le bundle à l'intent
i.putExtras(bundleExtras);

 

Pour récupérer une valeur

Pour récupérer les données, nous utiliserons les méthodes getExtra() typées:

type valeur=intent.gettypeExtra (String name)

ou name représente le nom clef de la valeur à récupérer

type le type de la valeur récupérée

 

Par exemple: id=intent.getIntExtra ("id", valeurParDefaut); (valeurParDefaut est la valeur retournée si id n'existe pas)

D'où quelques méthodes disponibles:

public float[] getFloatArrayExtra (String name)

public float getFloatExtra (String name, float defaultValue)

public int getIntExtra (String name, int defaultValue)

...

 

Soit par data

Eenvoyer des données:

setData(Uri data).

Récupérer ces données:

Uri getData()