如何在没有布局的情况下在Android的Java文件中使用字符串资源



我有一个Java类,它主要包含字符串。它没有布局,因为它既不是片段也不是活动。它更多地被用作辅助类。我想通过使用Resource字符串来分配类中的String值,因为我想自动转换String。但是,我无法从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)

然而,我得到了一个";初始化器错误中的异常";当我再次使用初始字符串时,我不会得到这个错误。所以我仍然无法从资源中获取字符串。你知道我能做什么吗?如有进一步评论,我将不胜感激。因此,该错误是由";原因:android.content.res.Resources$NotFoundException: String resource ID #0x7f120038"奇怪的是,资源实际上是存在的(我检查了好几次(。

getString(R.string...

与不同

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

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

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

您应该能够使用获取字符串

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

请参阅此处的更多信息,getString Outside a Context或Activity

最新更新