我想更改应用程序的语言,并且在 API 26 之前都可以正常工作。
对于 api > 25 我把Locale.setDefault(Locale.Category.DISPLAY, mynewlanglocale);
before setContentView(R.layout.activity_main);
但没有任何改变。
The docs https://developer.android.com/reference/java/util/Locale.html#setDefault(java.util.Locale.Category,%20java.util.Locale)对此不必过多解释。
我遇到了同样的问题:自从 Android 8.0+ 以来,我的应用程序的某些部分不再更改其语言。更新应用程序和活动上下文对我有帮助。这是 MainActivity 函数的示例:
private void setApplicationLanguage(String newLanguage) {
Resources activityRes = getResources();
Configuration activityConf = activityRes.getConfiguration();
Locale newLocale = new Locale(newLanguage);
activityConf.setLocale(newLocale);
activityRes.updateConfiguration(activityConf, activityRes.getDisplayMetrics());
Resources applicationRes = getApplicationContext().getResources();
Configuration applicationConf = applicationRes.getConfiguration();
applicationConf.setLocale(newLocale);
applicationRes.updateConfiguration(applicationConf,
applicationRes.getDisplayMetrics());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)