getString Out a Context or Activity

我发现将硬编码字符串排除在我的代码之外非常棒,并且我想继续在实用程序类中使用它,该实用程序类与应用程序中的模型一起使用以生成输出。例如,在本例中,我从活动外部的模型生成电子邮件。R.string

是否可以在上下文或活动之外使用 getString?我想我可以通过当前的活动,但这似乎没有必要。如果我错了,请纠正我!

编辑:我们可以在不使用的情况下访问资源吗?Context


答案 1

是的,我们可以在不使用“上下文”的情况下访问资源

您可以使用:

Resources.getSystem().getString(android.R.string.somecommonstuff)

...在应用程序中的任何位置,甚至在静态常量声明中也是如此。不幸的是,它只支持系统资源

对于本地资源,请使用此解决方案。它不是微不足道的,但它是有效的。


答案 2

不幸的是,访问任何字符串资源的唯一方法是使用 (即 or )。在这种情况下,我通常做的是简单地要求调用方在上下文中传递。ContextActivityService