Resources和getString()返回错误的文本翻译



在我的Fragment中,我获取一个返回法语翻译的字符串,但我希望它返回英语翻译。到目前为止我注意到的:

binding.textView = resources.getString(R.string.displayText) // returns French translation
binding.textView = getString(R.string.displayText) // returns English text

问题似乎是当我使用resources。我不明白这是如何发生的,为什么会发生,这两个例子都将调用资源中的public String getString(int resId)

当调用相同的getString()函数时,如何返回法语文本和另一个返回英语?

我试过使用StringResources,但是这个类已经被弃用了,不应该再使用了。

每个Resources都有独立的Configuration,Configuration的本地语言决定Resources的语言。您可以打印您的resources.getConfiguration().getLocales()来检查其本地。可能它的配置被修改了,或者资源属于另一个上下文。

getString()的默认实现是getResources().getString(),它使用默认上下文的资源。

最新更新