我正在共享偏好中保存用户选择的语言。当我关闭应用程序并重新启动它时,我通过getValue方法读取共享偏好中的值,并尝试更改语言。但是我的活动陷入了困境。
我在onCreate
中查看了这个 String language = getValue(getBaseContext());
if (language!= null && !language.isEmpty()) {
changelanguage(language);
}
changeLanguage如下:
private void changelanguage(String languageToLoad) {
Locale myLocale = new Locale(languageToLoad);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, MainActivity.class);
startActivity(refresh);
finish();
save(this, languageToLoad);
}
如何在启动时阅读并加载用户保存的语言?
答案 0 :(得分:1)
我通过在UI膨胀之前在oncreate中设置语言来解决它。
答案 1 :(得分:0)
你正在重新启动你想要的创建方法这个结果是无限循环。只是删除
Intent refresh = new Intent(this, MainActivity.class);
startActivity(refresh);
finish();
这个代码.hope这会帮助你