上下文或活动之外的 getString

新手上路,请多包涵

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

是否可以在 ContextgetString Activity ?我想我可以通过当前活动,但这似乎没有必要。如果我错了,请纠正我!

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

原文由 SapphireSun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 493
2 个回答

是的,我们可以在不使用 `Context` 的情况下访问资源

您可以使用:

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

…在您的应用程序中的任何地方,甚至在静态常量声明中。不幸 _的是,它只支持系统资源_。

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

原文由 Gangnus 发布,翻译遵循 CC BY-SA 3.0 许可协议

不幸的是,您可以访问任何字符串资源的唯一方法是使用 Context (即 ActivityService )。在这种情况下,我通常做的是简单地要求调用者传入上下文。

原文由 Erich Douglass 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题