8

这个问题可能听起来很愚蠢,但我想知道我们什么时候输入活动名称Intent.putExtra()?在一种情况下,我们只在 bundle 中添加 extra,在另一种情况下,我们使用类名传递它。我有点困惑我们是否应该使用Intent.putExtra(String, Bundle)我们已经在Intent构造函数中传递了活动名称?

谢谢你的帮助!

4

3 回答 3

20

我认为您的意思是putExtra(String, Bundle)vs putExtras(Bundle)(与s)。

第一个添加捆绑包作为您提供的键的值。bundle 是一个简单的对象值。

第二个将提供的包中的所有键/值对添加到意图。在这种情况下,捆绑的内容将被添加到意图中,而不是捆绑本身。

把它们想象成Map界面:

Map.put(String key, Object value)

对比

Map.putAll(Map anotherMap)
于 2012-08-10T11:13:04.613 回答
5

该方法只是这里的区别。如果您使用 a Bundle,您可以在其中存储几乎所有类型:

Bundle mBundle = new Bundle();
mBundle.put(key, value);

并将其传递给活动

mIntent.putExtras(mBundle);

在接收信息的其他活动中,只需像这样获取捆绑包的内容:

   Bundle extras = getIntent().getExtras();

并像这样抓住每个元素bundle

extras.getString("myKey")
于 2012-08-10T14:13:25.047 回答