长话短说
我有一个支持多种语言的应用程序。尽管使用了所有常用的本地化方法,但仍未翻译一项 Activity 。它是应用程序中唯一充分利用 DataBinding
的 Activity .
完整解释
我有一个 Activity
使用DataBinding
.所以基本上,整个 XML
该 Activity 的布局包含在 <layout>
中标签。这就是我膨胀 View 并获取绑定(bind)的方式:
SomeActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.some_activity);
有多个 TextViews
在XML
以这种方式设置文本:
...
android:text="@string/<name of a string>"
...
我们为用户提供预定义的语言选项,并使用
Locale.setDefault(new Locale("<language name>"));
在英语语言环境中,一切都完美无缺。
当应用程序处于不同的语言环境时,相关 Activity 中的字符串仍然以英语显示 - 即使这些字符串已被翻译成适当的语言,并且位于与其余部分相同的字符串文件中应用程序从中获取字符串。在该 Activity 开始之前,应用程序正常 - 在 Activity 开始后我退出它,应用程序恢复到英语语言环境,直到它被杀死并重新启动。如果该 Activity 从未打开,应用将按预期运行。
有人知道是什么原因造成的吗?谢谢。
最佳答案
弄清楚发生了什么。它与 ViewBinding 无关。该 Activity 以横向模式开始 - 由于某种原因重置应用程序区域设置。 This answer帮我修好了。
关于android - DataBinding 会干扰 Activity 的本地化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43552738/