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

Posted

技术标签:

【中文标题】如何通过传递一些参数来启动一个 Intent?【英文标题】:How to start an Intent by passing some parameters to it? 【发布时间】:2021-11-26 09:15:04 【问题描述】:

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

我通过此代码开始活动:

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

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

【问题讨论】:

我认为如果它询问如何将参数传递给新的 Activity 以及如何在传递参数后获取参数,这将是一个更好的问题。我不明白如果您需要同时使用这两个问题才能真正拥有任何功能,为什么我们需要有 2 个单独的问题。 (这就是为什么我在下面的答案中包含了如何获取参数) 【参考方案1】:

为了传递参数,你创建新的意图并放置一个参数映射:

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

为了在启动的活动中获取参数值,您必须以相同的意图调用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"

如果您的参数是整数,您将使用 getIntExtra() 等。 现在您可以像往常一样使用您的参数。

【讨论】:

【参考方案2】:

我想你想要这样的东西:

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

或者您可以先将它们组合成一个包。对应的 getExtra() 例程存在于另一端。有关详细信息,请参阅开发指南中的 the intent topic。

【讨论】:

这是一个如何在启动的活动中获取这些值的示例:***.com/a/4233898/246743【参考方案3】:

putExtra() : 该方法将数据发送到另一个活动,并且在参数中,我们必须传递键值对。

语法:intent.putExtra("key", value);

例如:intent.putExtra("full_name", "Vishnu Sivan");

Intent intent=getIntent() :它从上一个活动中获取 Intent。

fullname = intent.getStringExtra(“full_name”) :这一行从上一个活动中获取字符串,在参数中,我们必须传递我们在上一个活动中提到的密钥。

示例代码:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("firstName", "Vishnu");
intent.putExtra("lastName", "Sivan");
startActivity(intent);

【讨论】:

以上是关于如何通过传递一些参数来启动一个 Intent?的主要内容,如果未能解决你的问题,请参考以下文章

Android启动广播时怎样往广播中传递参数

使用Intent传递对象

Android12.2 利用Intent启动和关闭Activity

Kotlin - 通过 Intent 将函数作为参数传递

11) 十分钟学会android--Intent消息处理与传递详解

Intent的七大组件