[英]ListPreference updates its value only when entry is chosen for the second time
当语言ListPreference
改变, setLanguage()
方法从这个回答中onSharedPreferenceChanged()
在我的方法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());
PS 如果未调用setLanguage()
,则摘要会按原样更新。
代替
langPreference.setSummary(langPreference.getEntry());
尝试
langPreference.setSummary(PreferenceManager.getDefaultSharedPreferences(context).getString("key", "default value");
我使用此代码更新我的首选项摘要,它每次都有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.