通过intent.putExtra()发送信息

时间:2011-09-06 07:40:17

标签: android

我找到了几个帖子“像我一样的标题”,但我的qus是不同的。我qus使用意图我可以将数据发送到下一个调用活动吗?我可以不在其他活动中使用getExtra()方法意味着我能得到通过使用“密钥”在任何活动中的数据?

例如......

     int number=5;   
     Intent i = new Intent(A.this, B.class);
     i.putExtra("numbers", number);
     startActivity(i);


     In the activity B i get the info:


     Bundle extras = getIntent().getExtras();
     int arrayB = extras.getInt("numbers");

我可以在任何其他活动中得到它吗??

4 个答案:

答案 0 :(得分:1)

你的意图只会引用一个活动(在本例中为B.activity.class),所以只有B能够提取附加内容。

如果第三个活动C需要信息,您将需要构建您的程序,以便B将调用另一个意图(C.class)传递相同的额外内容。

答案 1 :(得分:1)

没有。除非您无法将此意图发送到该活动,否则您无法在其他活动中获取此内容。

Intent对象是一组信息。当您启动活动时,我们将信息传递给该活动。如果要将此捆绑包用于另一个活动,则您已将其传递给该活动。

您可以将信息包传递为

等级别

A-> B-&以及c

此处活动A启动活动并将信息传递给B活动,并且您可以在直接发送时将相同的包传递给C活动A-> C

答案 2 :(得分:1)

正如您的代码所示,

 int number=5;   
 Intent i = new Intent(A.this, B.class);
 i.putExtra("numbers", number);
 startActivity(i);

并从行

 Intent i = new Intent(A.this, B.class);

您的捆绑包对象仅在B活动中获取资源。

编辑:只在您传递意图的活动中获取捆绑包对象。       所以,只有那项活动才能收到它。

如果你想访问其他活动中的数据,可以使用共享首选项,sqlite,内部存储文件等。

感谢名单。

答案 3 :(得分:1)

您可以使用Activity中想要将数据发送到多个Activities的{​​{3}}并在Activities内注册sendBroadcast()来实现此目的您希望收到Intent。您可以查看本教程BroadcastReceivers,了解BroadcastReceivers