2010-04-06 4 views
7

J'ai un class2 qui est impliqué par class1 lorsque les clics sont faits. Je dois passer certains paramètres/objets de class1 à class2. Je ne connais que la méthode standard qui n'a pas l'option de passer des paramètres.Android: passage des paramètres entre les classes

// launch the full article 
Intent i = new Intent(this, Class2.class); 

startActivity(i); 

Répondre

14

Vous pouvez utiliser Intent.putExtra (qui utilise un Bundle) pour transmettre des données supplémentaires.

Intent i = new Intent(this, Class2.class); 
i.putExtra("foo", 5.0f); 
i.putExtra("bar", "baz"); 
startActivity(i); 

Ensuite, une fois que vous êtes dans votre nouvelle Activity:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) 
{ 
float foo = extras.getFloat("foo"); 
String bar = extras.getString("bar"); 
} 

Cela vous permet de passer des données de base aux activités. Cependant, vous aurez peut-être besoin d'un peu plus de travail pour passer des objets arbitraires.

+1

ce qui signifie que seuls les types simples (int, String, double) peuvent être passés mais pas Classes? Même BigMap ne peut pas être transmis? – Yang

+0

Vous pouvez également transmettre des objets sérialisables et "parcelables". http://developer.android.com/reference/android/content/Intent.html Je vais regarder autour de moi pour voir ce que je peux trouver pour faciliter le passage des objets. Une considération est de créer un champ statique sur la classe d'activité que vous pouvez définir à la référence de l'objet avant de commencer l'activité. –

+0

Utilisez Wagon. Cela rend ce très propre et facile: https://github.com/beplaya/Wagon – beplaya

Questions connexes