2010-03-08 14 views
85

chciałbym przekazać kilka zmiennych w konstruktorze moim ListActivityJak rozpocząć intencję, przekazując do niej niektóre parametry?

rozpocząć działalność za pośrednictwem tego kodu:

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

Chciałbym użyć podobnego kodu, ale zdać dwa ciągi do konstruktora. Jak to możliwe?

+2

Myślę, że byłoby lepiej pytanie, czy zapytał, jak przekazać parametry do nowego działania, a także jak uzyskać parametry po ich przejściu. Nie rozumiem, dlaczego potrzebujemy dwóch oddzielnych pytań, jeśli chcesz używać obu, aby naprawdę mieć jakąkolwiek funkcjonalność. (To dlatego dołączam, jak uzyskać parametry w mojej odpowiedzi, patrz poniżej). – Xitcod13

Odpowiedz

203

W celu przekazania parametrów tworzenia nowych zamiarów i umieścić mapę parametru:

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

W celu uzyskania wartości parametrów wewnątrz rozpoczęła działalność, należy skontaktować się z get[type]Extra() na tej samej intencji:

// 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" 

Jeśli parametry są ints byłoby użyć getIntExtra() zamiast itp teraz możesz wykorzystać swoje parametry jak zwykle.

39

Myślę, że chcesz coś takiego:

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

czy można połączyć je w pakiet pierwszy. Odpowiednie procedury getExtra() istnieją dla drugiej strony. Więcej informacji można znaleźć w przewodniku programisty: the intent topic.

+3

Oto przykład, jak uzyskać te wartości w uruchomionym działaniu: http://stackoverflow.com/a/4233898/246743 –

Powiązane problemy