web-dev-qa-db-fra.com

Envoi de tableaux avec Intent.putExtra

J'ai un tableau d'entiers dans l'activité A:

int array[] = {1,2,3};

Et je veux envoyer cette variable à l'activité B, je crée donc une nouvelle intention et utilise la méthode putExtra:

Intent i = new Intent(A.this, B.class);
i.putExtra("numbers", array);
startActivity(i);

Dans l'activité B, je reçois l'info:

Bundle extras = getIntent().getExtras();
int arrayB = extras.getInt("numbers");

Mais ce n'est pas vraiment l'envoi du tableau, je viens d'obtenir la valeur '0' sur le tableau B. J'ai cherché des exemples mais je n'ai rien trouvé de tel.

67
Kitinz

Vous définissez un extra avec un tableau. Vous essayez ensuite d'obtenir un seul int.

Votre code devrait être:

int[] arrayB = extras.getIntArray("numbers");
85
Mark B

Ce code envoie un tableau de valeurs entières

Initialiser la liste des tableaux

List<Integer> test = new ArrayList<Integer>();

Ajouter des valeurs à la liste de tableaux

test.add(1);
test.add(2);
test.add(3);
Intent intent=new Intent(this, targetActivty.class);

Envoyer les valeurs de la liste de tableaux à l'activité cible

intent.putIntegerArrayListExtra("test", (ArrayList<Integer>) test);
startActivity(intent);

ici, vous obtenez des valeurs sur targetActivty

Intent intent=getIntent();
ArrayList<String> test = intent.getStringArrayListExtra("test");
10
Khalid Habib