L'envoi des tableaux avec Intention.putExtra

j'ai un tableau d'entiers dans l'activité:

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

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

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

dans l'activité B j'obtiens l'info:

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

mais ce n'est pas vraiment envoyer le tableau, je viens d'obtenir la valeur '0' sur le tableau. J'ai été la recherche de quelques exemples, mais je n'ai rien trouvé de la sorte.

64
demandé sur user3678528 2010-10-03 05:12:14

3 réponses

vous définissez l'extra avec un tableau. Vous essayez alors d'obtenir un seul int.

votre code devrait être:

int[] arrayB = extras.getIntArray("numbers");
83
répondu Mark B 2010-10-03 02:22:23

ce code envoie un tableau de valeurs entières

Initialiser la Liste

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

ajouter des valeurs à la liste des tableaux

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

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

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

ici vous obtenez des valeurs sur targetaactivty

Intent intent=getIntent();
ArrayList<String> test = intent.getStringArrayListExtra("test");
8
répondu Khalid Habib 2015-11-30 05:45:09
final static String EXTRA_MESSAGE = "edit.list.message";

Context context;
public void onClick (View view)
{   
    Intent intent = new Intent(this,display.class);
    RelativeLayout relativeLayout = (RelativeLayout) view.getParent();

    TextView textView = (TextView) relativeLayout.findViewById(R.id.textView1);
    String message = textView.getText().toString();

    intent.putExtra(EXTRA_MESSAGE,message);
    startActivity(intent);
}
-2
répondu paladiya chirag 2012-08-15 11:38:23