更改ListPreference
中的语言后,将调用setLanguage()
类中onSharedPreferenceChanged()
方法中this answer中的SettingsFragment
方法。
String defaultCode = getActivity().getString(R.string.string_english_code);
String langCode = sharedPreferences.getString(PREF_LANGUAGE, defaultCode);
setLanguage(getActivity(), langCode);
((SettingsActivity) getActivity()).restartFragment();
更改语言是可以的,但是在setSummary()
中的ListPreference
对象上调用onCreate()
时,只有第二次选择必要的语言时,它才会更改。
ListPreference langPreference = (ListPreference) findPreference(PREF_LANGUAGE);
langPreference.setSummary(langPreference.getEntry());
P.S。如果未调用setLanguage()
,则摘要将按原样更新。
答案 0 :(得分:0)
代替
langPreference.setSummary(langPreference.getEntry());
尝试
langPreference.setSummary(PreferenceManager.getDefaultSharedPreferences(context).getString("key", "default value");
我使用此代码更新我的“首选项”摘要,每次都能使用。