gpt4 book ai didi

java - Android 是一个 Activity 特有的 Intent 还是全局的

转载 作者:行者123 更新时间:2023-12-02 02:40:53 25 4
gpt4 key购买 nike

我很好奇某个 Intent 对于一组 Activity 是否是唯一的。

例如,我当前对 Intent 的使用是从 Activity 1 中为其提供一些数据,然后将其传递给 Activity 2。

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("id", id.getText().toString());
intent.putExtra("weight", weight.getText().toString());
intent.putExtra("zipTo", zipTo.getText().toString());
intent.putExtra("locationId", locationID.getSelectedItem().toString());
intent.putExtra("imageNum", 1);
startActivity(intent);

现在,在 MainActivity 中,我可以使用以下代码来检索从上一个 Activity 传递的数据。

Bundle bundle = getIntent().getExtras();
id = bundle.getString("id");
weight = bundle.getString("weight");
locationID = bundle.getString("locationID");
zipTo = bundle.getString("zipTo");

在 MainActivity 中完成一些工作后,我需要返回到将我们发送到 MainActivity 的上一个 Activity(并且我需要返回最初发送的数据)。

我是否需要重新定义 Intent ,并在将其发送到第一个 Activity 之前在 MainActivity 中再次对每个值执行“intent.putExtra”?或者 Intent 是全局的,一旦在一个 Activity 中定义,我就可以通过 getIntent().getExtras() 在其他 Activity 中使用它?

最佳答案

Intent 不是全局的。您只能访问通过 Intent 传递而启动的 Activity 中的 bundle 。

您应该使用startActivityForResult(intent)。这提供了您正在寻找的行为。

Getting a result from an activity

这个想法是你开始新的 Intent 。在本例中为“MainActivity”。完成 MainActivity 中的逻辑后,您可以使用上述策略将结果传递回启动 MainActivity 的 Activity 。

关于java - Android 是一个 Activity 特有的 Intent 还是全局的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45492411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com