【发布时间】:2019-05-20 09:46:36
【问题描述】:
我在将语言更改为 Android 6.0.1 时遇到问题,在新的 Android 版本上更改语言效果很好,但在 6.0.1 上设置默认字符串,无论设备设置的语言如何。模拟器可以工作,但是当我在三星 J5 上安装 apk 时,它可以在 Android 6.0.1 上运行,更改语言不起作用。我的问题有什么解决办法吗?谢谢。
private void setLocale(String lang) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config =
getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
} else {
Resources resources = getBaseContext().getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(new Locale(lang));
getBaseContext().getApplicationContext().createConfigurationContext(configuration);
}
// shared pref.
SharedPreferences.Editor editor = getSharedPreferences("Settings", MODE_PRIVATE).edit();
editor.putString("My_Lang", lang);
editor.apply();
}
【问题讨论】: