我找到了几个帖子“像我一样的标题”,但我的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");
我可以在任何其他活动中得到它吗??
答案 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
。