为什么应用程序语言只能更改一次?
我正在尝试更改基于 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
}