【问题标题】:Passing data between Activities Android | java在Activity之间传递数据Android |爪哇
【发布时间】:2015-07-11 04:48:39
【问题描述】:

考虑三个活动,A,B,C。我想将数据从Activity A 传递到Activity C,但是Activity C 不是从Activity A 启动的,而是从Activity B 启动的,所以我正在寻找的是一个解决方案,如果我可以从Activity A 向Activity C 发送一个Integer 值,而Activity C 在执行时会收到该值,我可以为此目的使用intent.putExtra() 吗?任何帮助将不胜感激。

【问题讨论】:

标签: android


【解决方案1】:

是的,你是对的。你可以使用intent.putExtra()

  1. 您可以使用 intent.putExtra() 将数据从 activity A 传递到 activity B
  2. 然后在 活动 B 中处理该捆绑包
  3. 然后,当您启动 Activty c 时,将该捆绑包传递给 Intent
  4. 活动 c 中捕获该数据

【讨论】:

  • 感谢您以最小的方式回答这个问题。
  • 但问题是,Activity C 是从广播接收器启动的
  • 但是你提到了`相反它是从Activity B`启动的`
  • 是的,它是一个警报,从活动 B 调用广播接收器,并在特定系统时间启动活动 C
  • 所以你可以做的是`你可以创建序列化对象将其写入共享首选项并在那里访问或将 int 放入共享首选项中并在活动 c 中访问它
【解决方案2】:

我没有发表评论的声誉,因此将其作为答案。 你在你的问题中回答,intent.putExtra 是要走的路。但是将值从 A 传递给 B 并将 B 传递给 C,如果您觉得这很烦人,请使用共享偏好并将值从活动 A 中放入,并在需要时在活动 C 中获取并使用它。

【讨论】:

    【解决方案3】:

    您可以继续将包传递给活动 B 并通过意图获取该数据,同样的事情您可以通过单击按钮或选定视图在活动 B 中传递相同的包并在活动 C 中获得相同的意图,所以最后您的查询必须得到满足。

    【讨论】:

      【解决方案4】:

      如果intent.putExtra() 不适合您,那么您可以尝试在应用程序级别保存数据。
      您可以将A 中的数据保存到应用程序级别的某个变量中。 或者你可以只使用sharedPreferencessqlite

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-12
        • 1970-01-01
        • 2017-01-29
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 2016-07-24
        • 2014-05-25
        相关资源
        最近更新 更多