Wie eine Absicht zu beginnen, indem sie einige Parameter, um es vorbei?
-
18-09-2019 - |
Frage
Ich möchte einige Variablen im Konstruktor meines ListActivity passieren
Ich fange an Aktivität über diesen Code:
startActivity(new Intent (this, viewContacts.class));
Ich möchte einen ähnlichen Code verwenden, aber zwei Strings an den Konstruktor zu übergeben. Wie ist möglich?
Lösung
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 Sie Ihre Parameter sind Ints Sie getIntExtra()
stattdessen usw. verwenden würden
Jetzt können Sie Ihre Parameter verwenden wie gewohnt.
Andere Tipps
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. Siehe das Absicht Thema in dem Entwickler-guide weitere Informationen.