首页 > 解决方案 > 如何在没有布局的情况下在 Android 的 Java 文件中使用字符串资源

问题描述

我有一个主要包含字符串的 Java 类。它没有布局,因为它既不是 Fragment 也不是 Activity。它更多地用作辅助类。我想通过使用资源字符串在类中分配字符串值,因为我想自动翻译字符串。但是,我无法从 Java 访问字符串资源。我使用以下代码:

 static String more = getString(R.string.more);

在 XML 文件中,我有资源:

<string name="more">More</string>

我收到错误消息

Cannot resolve method 'getString' 

我也尝试过static String more = getContext().getString(R.string.more); ,但我收到了错误消息:

Cannot resolve method 'getContext'

有人介意帮助我吗?我会很感激每一条评论。

更新:我尝试使用“MikaelM”的答案

Resources.getSystem().getString(R.string.more)

但是,我收到“初始化程序错误异常”,当我再次使用初始字符串时,我没有收到此错误。所以我仍然无法从资源中获取字符串。你知道我能做什么吗?我会很感激每一个进一步的评论。所以错误是由“Caused by:android.content.res.Resources$NotFoundException: String resource ID #0x7f120038" 奇怪的是资源实际上存在(我检查了几次)引起的。

标签: javaandroidstring

解决方案


getString(R.string...

不一样

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

只有第二种变体可以在静态上下文中使用。唉,你只能通过这种方式获得系统资源。

如果您需要获取自己的资源,则不存在单线解决方案。使用@Cristian 的https://stackoverflow.com/a/4391811/715269解决方案。请注意:这是一个非常好的解决方案,更重要的是,它是供Android 的创建者使用的解决方案。


推荐阅读