2010-03-08 17 views
85

Ich möchte einige Variablen im Konstruktor meines ListActivityWie starte ich eine Absicht, indem ich einige Parameter übergebe?

I-Aktivität über diesen Code beginnen passieren:

startActivity(new Intent (this, viewContacts.class)); 

Ich möchte einen ähnlichen Code verwenden, aber zwei Strings an den Konstruktor zu übergeben. Wie ist es möglich?

+2

Ich denke, es wäre eine bessere Frage, wenn es fragte, wie man die Parameter an eine neue Aktivität weitergibt und wie man die Parameter erhält, sobald man sie passiert. Ich verstehe nicht, warum wir zwei separate Fragen haben müssen, wenn Sie beide verwenden müssen, um wirklich irgendeine Funktionalität überhaupt zu haben. (Dies ist der Grund, warum ich Parameter in meine Antwort aufgenommen habe, siehe unten.) – Xitcod13

Antwort

203

Um die Parameter zu übergeben Sie neue Absicht erstellen und eine Parameterkarte setzen:

Intent myIntent = new Intent(this, NewActivityClassName.class); 
myIntent.putExtra("firstKeyName","FirstKeyValue"); 
myIntent.putExtra("secondKeyName","SecondKeyValue"); 
startActivity(myIntent); 

Um die Parameter-Werte innerhalb der begann Aktivität zu erhalten, müssen Sie die get[type]Extra() auf der gleichen Absicht nennen:

// getIntent() is a method from the started activity 
Intent myIntent = getIntent(); // gets the previously created intent 
String firstKeyName = myIntent.getStringExtra("firstKeyName"); // will return "FirstKeyValue" 
String secondKeyName= myIntent.getStringExtra("secondKeyName"); // will return "SecondKeyValue" 

Wenn Ihre Parameter sind ints Sie getIntExtra() statt usw. Jetzt verwenden würden Sie Ihre Parameter wie gewohnt nutzen können.

39

Ich glaube, Sie so etwas wie dies wollen:

Intent foo = new Intent(this, viewContacts.class); 
foo.putExtra("myFirstKey", "myFirstValue"); 
foo.putExtra("mySecondKey", "mySecondValue"); 
startActivity(foo); 

oder Sie können sie zu einem Bündel ersten kombinieren. Entsprechende getExtra() - Routinen existieren für die andere Seite. Weitere Informationen finden Sie im Entwicklerhandbuch unter the intent topic.

+3

Hier ist ein Beispiel, wie Sie diese Werte in der gestarteten Aktivität erhalten: http://stackoverflow.com/a/4233898/246743 –

Verwandte Themen