2011-06-15 4 views

Répondre

40

Utilisez putExtra(String, Serializable) pour passer la valeur dans une méthode d'intention et getSerializableExtra(String) pour récupérer les données.

Passer un ArrayList<HashMap<String, String>> d'activité A à l'activité B

Intent intent = new Intent(this, B.class); 
HashMap<String, String> hm = new HashMap<String, String>(); 
hm.put("sunil", "sahoo"); 
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>(); 
arl.add(hm); 
intent.putExtra("arraylist", arl); 
startActivityForResult(intent, 500); 

Récupérer les données dans l'activité B

ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist"); 
System.out.println("...serialized data.."+arl); 
+1

Merci Cela fonctionne. – sandy

+0

getSerializableExtra ne semble pas exister, im using Honeycomb. – Neil

+1

Vous avez sauvé ma journée! –

4

Vous pouvez utiliser un ensemble passer des éléments d'une activité à une autre.

Check this out: http://developer.android.com/reference/android/os/Bundle.html

Vous créez le Bundle, mettez-le dans l'intention, puis sur la nouvelle activité, vous obtenez et extraire les éléments dont vous avez besoin.

Il va comme ceci:

Bundle b = new Bundle(); 
String s = "hello"; 
b.putString("example", s); 
intent.putExtras(b); 

puis sur la nouvelle activité:

Bundle b = this.getIntent().getExtras(); 
String s = b.getString("example"); 
+1

plutôt qu'il peut utiliser intention.putStringArrayList ("nom", valeur) ,, mais il a des objets Hashmap stockés dans lui .. pas de chaîne ... – ngesh

1

est une autre technique ici, j'ai utilisé la ligne suivante pour définir ArrayList en première classe.

static ArrayList al=new ArrayList(); 

En deuxième activité, j'ai utilisé la ligne suivante pour obtenir les données de ArrayList de firstClass,

firstClass.al.size(); 
+0

Jouer avec de l'électricité statique n'est généralement pas une bonne idée! –

+0

Il peut certainement le faire, mais ce n'est généralement pas une bonne idée de faire quelque chose de statique juste parce que vous en avez besoin ailleurs. – seth

+0

Si statique n'est pas une bonne idée, alors pourquoi Java langage de programmation contient mot-clé "statique". – user609239

0

mon idée, vous pouvez définir une variable statique globale pour cet ensemble de données sur le paquet et économisez le premier avant de sauter à une autre activité.

Questions connexes