Android:更改为不支持的区域设置

时间:2013-06-23 17:23:37

标签: android locale

我一直在尝试使用下一个代码更改语言环境:

private void changeLocal(Locale locale){
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
          getBaseContext().getResources().getDisplayMetrics());
    refresh();
}

private void refresh() {
    finish();
    Intent myIntent = new Intent(this, getClass());
    startActivity(myIntent);
}

它适用于法语,但不适用于希伯来语。所以我通过调用Locale.getAvailableLocales()查看了设备支持的语言环境,我发现法语在那里,但希伯来语没有。

如果我输入硬编码的希伯来文本,我可以看到它,所以它已安装,但我不知道如何强制设备使用它。

请帮我用希伯来语强制使用设备。

P.S 即使在添加

时,如果没有refresh,也无法完成此工作
android:configChanges="locale|layoutDirection"

到我的清单,它不会调用我的活动的onConfigurationChanged

1 个答案:

答案 0 :(得分:1)

由于有两个不同的标准,您必须将值文件夹加倍。

将希伯来语字符串添加到这些文件夹中:

values-he

values-iw

有些设备会使用一个文件夹。其他设备将使用另一台设备。

请注意实际上是deprecated。因此,大多数设备将使用 iw