android - DataBinding 会干扰 Activity 的本地化吗?

标签 android android-activity data-binding android-location android-databinding

长话短说

我有一个支持多种语言的应用程序。尽管使用了所有常用的本地化方法,但仍未翻译一项 Activity 。它是应用程序中唯一充分利用 DataBinding 的 Activity .

完整解释

我有一个 Activity使用DataBinding .所以基本上,整个 XML该 Activity 的布局包含在 <layout> 中标签。这就是我膨胀 View 并获取绑定(bind)的方式:

SomeActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.some_activity);

有多个 TextViewsXML以这种方式设置文本:

... 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/

相关文章:

c# - 处理空数字绑定(bind)

android - API 21 中的 EditText 填充不起作用

android - 仅针对文件的 Intent 过滤器

java - 安卓 : startActivityForResult() with BACK button functionality

使用数据绑定(bind)进行 Android 单元测试

Angular2如何在不点击的情况下触发(点击)事件

Android 媒体播放器导致 "dead thread"消息

java - 找不到 Android R.anim.files

android - Parcelable 用于 inproc 通信的效率

android - Activity 在 finish() 之后仍然继续;