Android:应用如何处理设备的语言更改

时间:2015-06-29 19:35:51

标签: android locale

其实我在我的应用程序中处理3种语言,所以我有:

values/strings.xml

values-it/strings.xml

values-de/strings.xml

安装应用程序时,它已以设备的当前语言正确安装。 但是,如果我更改设备的语言,应用程序的语言不会切换。我必须重新安装才能切换语言。

我发现这种情况也会发生在其他应用中,但不会发生在所有应用中。 “大”的(whatsapp,viber,所有谷歌等)都会发生变化。

所以问题是:应用程序如何遵循设备的语言变化?

2 个答案:

答案 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将是一个很好的决定。