其实我在我的应用程序中处理3种语言,所以我有:
values/strings.xml
values-it/strings.xml
values-de/strings.xml
安装应用程序时,它已以设备的当前语言正确安装。 但是,如果我更改设备的语言,应用程序的语言不会切换。我必须重新安装才能切换语言。
我发现这种情况也会发生在其他应用中,但不会发生在所有应用中。 “大”的(whatsapp,viber,所有谷歌等)都会发生变化。
所以问题是:应用程序如何遵循设备的语言变化?
答案 0 :(得分:2)
除非您在Androidmanifest文件中为您的活动指定了android:configChanges="locale"
,否则它应该没有任何问题
答案 1 :(得分:0)
我添加了一个答案来帮助有同样问题的人。 要获得语言更改的事件,首先要做的是将其添加到清单中:
<activity
....
android:configChanges="layoutDirection|locale"
....
</activity>
请注意layoutDirection
:没有它,它不起作用!只有locale
才会触发此事件。它与从右到左的语言有关,但我没有进一步调查。
然后,在活动中添加:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
}
当应用程序恢复且newConfig
包含所需的所有信息时调用此方法,例如 newConfig.locale.getLanguage()
如何更新应用中的语言,取决于您,但阅读@StenSoft建议的documentation将是一个很好的决定。