【问题标题】:passing data between 3 activities and getting data=null in onActivityResult() in the 1st activity在 3 个活动之间传递数据并在第一个活动的 onActivityResult() 中获取 data=null
【发布时间】:2018-03-07 13:35:25
【问题描述】:

我有一个AppCompatActivity(MainActivity),它有一个recyclerview,点击卡片项目后,它会将我带到2nd AppCompatActivity。我通过意图传递值并从recyclerview_adapter.ViewHolder 发送mCtx.startActivityForResult(intent,1)

从活动 2 传递到活动 3 的数据:

Intent intent = new Intent(2ndActivity.this, 3rdActivity.class);
                            intent.putExtra("user", user);
                            intent.putExtra("location", location);
                            startActivity(intent);

然后在第二个活动中单击 提交 按钮后,它会将我带到第三个活动。这里我通过调用发送数据

setResult(AppCompatActivity.RESULT_OK,new Intent().putExtra("user", user).putExtra("location", location));
finish();

在我回到第一个 Activity(MainActivity) 之后,onActivityResult() Intent Data 为空。

当我通过 3 个活动传递数据时如何获取数据?

感谢您的帮助。 提前致谢!

【问题讨论】:

  • 如果您从第三个活动转到第一个活动,它将为空,因为第三个活动不会使用setResult() 方法为第一个活动设置结果。
  • 那我怎样才能让它从第三个活动到第一个活动?
  • 请贴一些代码。如果您在 startActivityForResult() 中指定 Activity,onActivity 结果将期望来自该活动的结果,而不是第 3 个。使用广播等其他机制成功地将数据从 3rd 传输到 1st Activity。

标签: android android-intent parcelable


【解决方案1】:

从第三个 Activity 转到第一个您必须再次设置 Intent Extras,这是因为在从一个 Activity 转到另一个 Activity 时不会记住 Intent Extras,然后再换一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多