我的目标是在创建上下文之前覆盖应用程序语言,并且我将使用该上下文来调用其他活动。它可以通过在“onCreate”上对“重新创建()”方法进行校对,但我不想重新创建活动以实现该目标。 E.g
@Override
protected void attachBaseContext(Context newBase) {
//null exception here
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String langKey = getString(R.string.pref_language_key);
String langValue = sharedPreferences.getString(langKey, null);
super.attachBaseContext(ConfigurationUtil.wrapLanguage(newBase, langValue));
}
如果无法做到这一点,是否有任何想法如何设置用户从设置中选择的应用程序语言?
答案 0 :(得分:5)
这对我有用:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase);
请使用newBase上下文而不是您的Activity上下文