【问题标题】:Passing value of a variable from 1st activty to 3rd activity将变量的值从第一个活动传递到第三个活动
【发布时间】:2012-08-27 14:24:17
【问题描述】:

在将变量的值从第一个活动传递到第三个活动时,我应该使用 intent.putextra 还是应该将变量设为全局变量,以便可以在任何活动中使用它。

【问题讨论】:

标签: android variables global-variables


【解决方案1】:

你有几个选择:

  • 实现你自己的Application类,并使这个变量成为类的属性
  • 在首选项中保存并获取此变量

【讨论】:

  • 是的@Orabig,Application 类在 ANDROID 中提供了全局变量的概念。
【解决方案2】:

最好的方法是使用意图。

尽管如此,您有时需要更持久的变量,或者存储更复杂的对象。在这些情况下,您可以在单例类中使用静态变量。

【讨论】:

  • 你能告诉我哪个更快吗?只是另一个问题。
  • 静态变量消耗更多内存,但开发人员通常很容易使用。
【解决方案3】:

这绝对是你的决定,但我想用户可以转到 Activity 2 并按回,从而取消对这个变量的需要。

最好的选择是将值作为附加值发送到活动 2。然后,如果需要,它可以将其发送到活动 3。

提醒 不要使用 static variables 静态变量几乎总是错误

【讨论】:

  • 为什么使用公共静态变量是错误的?我认为如果我使用静态变量而不是 putextra 会更容易。
【解决方案4】:

您可以将会话 ID 传递给意图中的注销活动,以启动活动:

    Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
    intent.putExtra("EXTRA_SESSION_ID", sessionId);
    startActivity(intent)

注意:让会话 ID 可用于您希望允许用户退出的每个活动。否则,您可以将其存储在 Application 对象中,但是您必须管理会话的状态(在使用之前检查它是否有效,...)

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 2012-12-08
    • 2012-08-30
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    相关资源
    最近更新 更多