我一直在尝试使用下一个代码更改语言环境:
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
答案 0 :(得分:1)
由于有两个不同的标准,您必须将值文件夹加倍。
将希伯来语字符串添加到这些文件夹中:
values-he
和
values-iw
有些设备会使用一个文件夹。其他设备将使用另一台设备。
请注意他实际上是deprecated
。因此,大多数设备将使用 iw