当应用运行

时间:2016-04-07 14:13:41

标签: android android-layout localization

我在Android中更改语言时遇到了一些奇怪的问题。 当我切换设备语言并打开应用程序时 - 一切正常。 但是当应用程序仍在运行并且我更改设备语言时 - 单个字符串(checkBox的标签)不会发生变化,并且在应用程序运行时从第二语言更改为第一语言也是如此。如果我重新启动应用程序 - 一切都运行良好。

两种方向都会发生这种情况(我有一种不同的横向布局)。

我试图检查是否因为第二语言是希伯来语(因此语言的方向被颠倒)所以我添加了法语(与英语有点不同的字符串),但它没有'也工作。

我还尝试在checkBox.setText(getString(R.string.ChkBox));中添加onCreate,但它没有用。

1 个答案:

答案 0 :(得分:1)

这可能是问题的onConfigurationChange not called after changing locale

您需要在 AndroidManifest.xml 文件中将以下内容添加到您的活动定义中:

android:configChanges="layoutDirection|locale"

这样,调用onConfigurationChange进行语言环境(语言)更改。然后,您可以覆盖活动中的onConfigurationChange,并确保正确设置文本。

请注意,还需要一些额外的工作才能使strings.xml与翻译/不同的语言环境一起使用。您可以使用Android Studio翻译帮助程序来简化操作。