为什么应用程序语言只能更改一次?

我正在尝试更改基于 Java 的 Android 中的应用程序语言。这是函数:

public void setLocale(String lang) {
    Locale locale = new Locale(lang);
    Configuration config = new Configuration();
    
    Locale.setDefault(locale);
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config, null);
    finish();
    startActivity(getIntent());
}

此功能来自另一个问题,例如“如何更改应用程序语言”,但它只能工作一次(例如从英语到希伯来语)。
这不是一个重复的问题
你能帮帮我吗?

回答

用这个替换你的函数:

public void setLocale(String language) {
    Locale locale = new Locale(language);
    Locale.setDefault(locale); // changes the languages
    Resources resources = getBaseContext().getResources();
    Configuration config = resources.getConfiguration();
    config.setLocale(locale);
    resources.updateConfiguration(config, resources.getDisplayMetrics());
    this.recreate(); // re-launches the app
}


以上是为什么应用程序语言只能更改一次?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>