独立于 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 访问字符串资源的主要内容,如果未能解决你的问题,请参考以下文章
如何从对话框中的主活动更新 ImageButton 的图像资源