如何在android中的活动启动时从sharedpreference加载语言?

时间:2015-10-01 17:10:54

标签: android

我正在共享偏好中保存用户选择的语言。当我关闭应用程序并重新启动它时,我通过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);
}

如何在启动时阅读并加载用户保存的语言?

2 个答案:

答案 0 :(得分:1)

我通过在UI膨胀之前在oncreate中设置语言来解决它。

答案 1 :(得分:0)

你正在重新启动你想要的创建方法这个结果是无限循环。只是删除
Intent refresh = new Intent(this, MainActivity.class); startActivity(refresh); finish();这个代码.hope这会帮助你