如何通过传递一些参数来启动Intent?

Pen*_*m10 98 android constructor android-intent

我想在ListActivity的构造函数中传递一些变量

我通过以下代码开始活动:

startActivity(new Intent (this, viewContacts.class));
Run Code Online (Sandbox Code Playgroud)

我想使用类似的代码,但要将两个字符串传递给构造函数.怎么可能?

Xit*_*d13 232

为了传递参数,您需要创建新意图并放置参数图:

Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("firstKeyName","FirstKeyValue");
myIntent.putExtra("secondKeyName","SecondKeyValue");
startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)

要在已启动的活动中获取参数值,您必须调用get[type]Extra()相同的意图:

// 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"
Run Code Online (Sandbox Code Playgroud)

如果您的参数是整数,则可以使用getIntExtra()等等.现在您可以像平常一样使用参数.


Ric*_*red 41

我想你想要这样的东西:

Intent foo = new Intent(this, viewContacts.class);
foo.putExtra("myFirstKey", "myFirstValue");
foo.putExtra("mySecondKey", "mySecondValue");
startActivity(foo);
Run Code Online (Sandbox Code Playgroud)

或者你可以先把它们组合成一个包.对应的getExtra()例程存在于另一方.有关详细信息,请参阅开发指南中的intent主题.

  • 以下是如何在已启动的活动中获取这些值的示例:http://stackoverflow.com/a/4233898/246743 (3认同)