2010-10-03 13 views
61

I ont un tableau d'entiers dans l'activité A:tableaux avec envoi Intent.putExtra

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

Et je veux envoyer cette variable à la B d'activité, donc je créer 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é BI obtenir l'info:

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

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

+2

La réponse que je avais besoin était dans votre question. C'était comment utiliser '.getExtras()' le dont j'avais besoin. – MikeyE

Répondre

81

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

Votre code doit être:

int[] arrayB = extras.getIntArray("numbers"); 
+4

Aïe! Je me suis concentré sur la syntaxe putExtra et getExtras que je n'ai pas réalisé que l'erreur était si évidente: D Merci! – Kitinz

+0

@Kitinz +1 pour être très gentil sur la communauté ... J'ai aimé ça :) – Adnan

-2
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); 
} 
+1

Je pense que vous apprendrez à connaître après avoir vu ce code où vous avez fait l'erreur ...... :) –

+1

évidemment pas pal – Wadester

7

Ce code envoie tableau de valeurs entières

Initialiser tableau Liste

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

Ajouter des valeurs à la liste de tableau

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

Envoyer les valeurs de la liste de tableau à 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");