如何在调用 attachBaseContext 之前获取 sharedPreferences 键值?
How to get a sharedPreferences key value before attachBaseContext called?
我的目标是在创建上下文之前覆盖应用程序语言,我将使用该上下文调用其他活动。可以通过 "onCreate" 上的 colling "recreate()" 方法实现,但我不想重新创建 activity 来实现该目标。例如
@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));
}
如果这不可能,有什么想法可以设置用户从设置中选择的应用程序语言吗?
这对我有用:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase);
请使用 newBase 上下文,而不是您的 Activity 上下文
我的目标是在创建上下文之前覆盖应用程序语言,我将使用该上下文调用其他活动。可以通过 "onCreate" 上的 colling "recreate()" 方法实现,但我不想重新创建 activity 来实现该目标。例如
@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));
}
如果这不可能,有什么想法可以设置用户从设置中选择的应用程序语言吗?
这对我有用:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase);
请使用 newBase 上下文,而不是您的 Activity 上下文