2013-07-31 1 views
0

Dans l'activité A, j'ai construit un q1 éventail de questions et je passé à l'activité B:Passer un tableau à l'activité (Android)

Intent i = new Intent(getApplicationContext(), B.class); 
i.putExtra("questions", q1); 
startActivity(i); 
finish(); 

Dans l'activité B:

Object c= getIntent().getExtras().getSerializable("questions"); 

Maintenant, comment puis-je reconvertir "c" dans un tableau de questions? Je ne peux pas faire un cast (Question [])

+0

La question est-elle marquée comme «sérialisable»? – CodingIntrigue

+0

Oui la question marquée comme sérialisable. – GiuseppeLabanca

+0

Ensuite, vous devriez être capable de le lancer. Avez-vous une exception? Si c'est le cas, pouvez-vous publier les entrées de trace/logcat de la pile. – CodingIntrigue

Répondre

2

ce sera utile.

Question[] questions = (Question)context.getIntent().getExtras().get(key) 
+0

Char ?? J'ai construit un tableau q1 de Question ... – GiuseppeLabanca

+0

voir ma réponse mise à jour. –

0

Vos objets doivent implémenter l'interface Parcelable.

Dans votre classe Question doit implémenter l'interface parcelable. Voir le code suivant,

Question[] questions = //assign value; 
Parcelable[] output = new Parcelable[questions.length]; 
for (int i=questions.length-1; i>=0; --i) { 
    output[i] = questions[i]; 
} 

Intent i = new Intent(...); 
i.putExtra("QuestionArray", output); 

// retreiving il de l'intention

Question[] questions = (Question[])intent.getParcelableArrayExtra("QuestionArray"); 
0

Dans votre première activité vous pouvez envoyer le tableau dans un paquet, puis dans l'activité suivante qui a été créé avec l'intention que vous peut extraire la liste de tableau de l'ensemble.

 Bundle b=new Bundle(); 
     b.putStringArrayList("option", optionMod); 
     Intent i = new Intent(getApplicationContext(), ad45.hw.hwapp.confirmation.class); 
     i.putExtras(b); 
     startActivity(i); 

Puis, quand vous voulez lire le contenu de votre nouvelle activité, créer une nouvelle liste de tableau pour stocker celui qui a été envoyé avec l'intention et extraire le tableau du faisceau:

public void getInfo(){ 
    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     options = extras.getStringArrayList("option"); 
    } 
    } 
0

Votre objet Question doit implémenter l'interface Parcelable. Vous pouvez mettre uniquement des objets primitifs ou des objets implémentant Parcelable.