【问题标题】:Accessing String Ressources independent from Activity独立于 Activity 访问字符串资源
【发布时间】:2013-05-28 16:07:07
【问题描述】:

我想构建一个帮助类,它通过字符串的名称获取字符串(来自 strings.xml)。

在这个类中应该有一个带有getIdentifier() 的方法来通过名称获取字符串。您需要此方法的上下文。现在每次我想使用这个帮助类时,我都必须将当前活动的上下文传递给它。但是strings.xml 文件中的字符串是独立于活动的。

有没有办法为此目的获取应用程序上下文?

【问题讨论】:

  • 使用 getIndentifier 可以获得字符串的 id,而不是字符串本身。为了获取字符串,您需要上下文
  • @jasdefer 字符串是独立的,但它们在活动的上下文中使用,因此您必须为助手类提供上下文
  • @Muhannad 是的,我知道。但问题是,如果我可以一次性将上下文提供给辅助类并在多个活动中使用它。
  • 实际上,您不能在另一个活动中使用活动上下文,而是尝试使用 getApplicationContext() 传递应用程序上下文并让我们知道这是否可行并使成员变量静态,以便您可以在任何地方调用方法在您的代码中
  • 好的,非常感谢。我会尝试并报告结果:)

标签: java android android-activity android-context


【解决方案1】:

好吧,只需将 Context 设置为方法调用中的参数即可。

public static String getIdentifier (final Context context, int resource)

然后使用该上下文访问资源。

context.getString(resource);

为了从您的 Activity 中调用该方法,请将“this”作为上下文传递。

String example = HelperClass.getIdentifier(this, R.string.example);

尽管如此,这似乎是一个不必要的步骤,因为它只是您已经可以从活动中做的事情的额外层。

String example = getString(R.string.example); 

但不确定您的计划是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多