这个问题可能听起来很愚蠢,但我知道我们何时将活动名称放在Intent.putExtra()
?在一种情况下,我们只使用bundle进行额外的操作,而在其他情况下,我们使用类名传递它。如果我们使用Intent.putExtra(String, Bundle)
我们已经在Intent
构造函数中传递了活动名称,我有点困惑吗?
感谢您的帮助!
答案 0 :(得分:15)
我认为您的意思是putExtra(String, Bundle)
vs putExtras(Bundle)
( s )。
第一个添加捆绑包作为您提供的密钥的值。捆绑包很简单,就是对象值。
第二个将所提供的包中的所有键/值对添加到intent中。在这种情况下,捆绑包的内容将添加到intent中,而不是捆绑包本身。
将它们视为Map
界面:
Map.put(String key, Object value)
VS
Map.putAll(Map anotherMap)
答案 1 :(得分:3)
这种方法与众不同。如果您使用Bundle
,则可以在其中存储几乎所有类型:
Bundle mBundle = new Bundle();
mBundle.put(key, value);
并将其传递给活动
mIntent.putExtras(mBundle);
并在收到信息的其他活动中,只需抓住包的内容:
Bundle extras = getIntent().getExtras();
并抓住bundle
中的每个元素,如下所示:
extras.getString("myKey")
答案 2 :(得分:1)