在我的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()
,它使用默认上下文的资源。