【问题标题】:Global Objects accessible throughout Android application [duplicate]可在整个 Android 应用程序中访问的全局对象 [重复]
【发布时间】:2011-10-29 20:46:05
【问题描述】:

我有一个使用自定义类的应用程序。当应用程序启动时,我在主活动中填充此类的一个实例,其中包含它将保存的所有数据。

然后基本数据显示在 ListView 中,您可以从中选择一个 ListView 项目以查看在另一个 Activity 中显示的更多信息。

目前,我必须使用以下方法将与新活动相关的数据传递给它:

intent.putExtra("NAME", value);

我想实现一个 ViewPager,以便用户可以轻松地在 ListView 项目之间切换。因此当前使用的方法不是很好,因为我一次只有一个条目的数据,并且需要返回原始活动才能再次获取所有数据。

有没有办法让我的类对象在我的应用程序中的任何地方都可用?我觉得我的应用程序代码变得臃肿,因为我正在用糟糕的代码方法克服这些问题。

我刚刚研究过使用:

MyApp myapp = ((MyApp)context.getApplication());

但是除非我可以传递上下文,否则这将不起作用,我不知道该怎么做??

在 C# 中,您将创建一个可以处理此问题的静态类......

谢谢 尼尔

【问题讨论】:

    标签: java android


    【解决方案1】:

    你可以:

    • 保存数据的静态类(在进程被终止之前可用)
    • 提供访问您数据的本地服务
    • 保存数据的应用程序类
    • 一种持久化数据的数据库机制(在这种情况下,您只需将 ID 作为 Intent 额外传递)

    所有这些选项或多或少都有效,这还取决于您对数据的处理方式、数据的来源......

    【讨论】:

    • 如何创建静态类?
    【解决方案2】:

    我认为您正在寻找一个 Singleton 对象。创建将所有数据保存为单例对象的自定义类,并从代码中的任何位置访问其数据。此外,由于这些数据可能与 UI 没有直接关系,因此您不应将其与 Activity 关联。

    HTH,

    阿克谢

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2011-11-04
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多