独立于 Activity 访问字符串资源

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于独立于 Activity 访问字符串资源的主要内容,如果未能解决你的问题,请参考以下文章

Android根据字符串加载Activity和图片

Servlet中关于路径的小结

如何从对话框中的主活动更新 ImageButton 的图像资源

android 文件存取可以跨进程吗

如何使用 Java 从独立于平台的文本文件中删除 ^M 字符?

实验四 颜色字符串资源的使用