繁体   English   中英

ListPreference 仅在第二次选择条目时更新其值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM