我在Android中更改语言时遇到了一些奇怪的问题。 当我切换设备语言并打开应用程序时 - 一切正常。 但是当应用程序仍在运行并且我更改设备语言时 - 单个字符串(checkBox的标签)不会发生变化,并且在应用程序运行时从第二语言更改为第一语言也是如此。如果我重新启动应用程序 - 一切都运行良好。
两种方向都会发生这种情况(我有一种不同的横向布局)。
我试图检查是否因为第二语言是希伯来语(因此语言的方向被颠倒)所以我添加了法语(与英语有点不同的字符串),但它没有'也工作。
我还尝试在checkBox.setText(getString(R.string.ChkBox));
中添加onCreate
,但它没有用。
答案 0 :(得分:1)
这可能是问题的onConfigurationChange not called after changing locale
您需要在 AndroidManifest.xml 文件中将以下内容添加到您的活动定义中:
android:configChanges="layoutDirection|locale"
这样,调用onConfigurationChange进行语言环境(语言)更改。然后,您可以覆盖活动中的onConfigurationChange,并确保正确设置文本。
请注意,还需要一些额外的工作才能使strings.xml与翻译/不同的语言环境一起使用。您可以使用Android Studio翻译帮助程序来简化操作。