gpt4 book ai didi

java - Locale.getLanguage() 刷新 UI 后未更新(语言更改)

转载 作者:行者123 更新时间:2023-12-02 03:14:06 25 4
gpt4 key购买 nike

我正在使用此函数以编程方式将语言从英语更改为阿拉伯语:

private void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
conf.setLocale(new Locale(lang));
Locale.setDefault(myLocale);
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(getContext(), MainActivity.class);
getActivity().finish();
startActivity(refresh);

}

语言正在发生变化,但是使用时Locale.getDefault().getLanguage();或者Resources.getSystem().getConfiguration().locale.getLanguage();尽管显示的语言是阿拉伯语,但我仍然得到英语( en )而不是预期值 ar 。知道为什么它仍然返回 en 吗?

最佳答案

每当您执行 onCreate() 以及系统的其他一些调用时,配置都会被覆盖。因此,您需要将区域设置保存在 SharedPreferences 中,并在每个 Activity 的每个 onCreate() 方法中进行设置。

请参阅此处了解可能的方法: Change app language programmatically in Android

关于java - Locale.getLanguage() 刷新 UI 后未更新(语言更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56974899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com