[英]ListPreference updates its value only when entry is chosen for the second time
When the language in ListPreference
is changed, setLanguage()
method from this answer in onSharedPreferenceChanged()
method in my SettingsFragment
class is called.当语言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();
Changing a language works fine, but when setSummary()
is called on the ListPreference
object in onCreate()
it changes only when the necessary language is chosen for the second time.更改语言工作正常,但是当setSummary()
被称为上ListPreference
在对象onCreate()
它只有当选择第二次必要的语言变化。
ListPreference langPreference = (ListPreference) findPreference(PREF_LANGUAGE);
langPreference.setSummary(langPreference.getEntry());
PS If setLanguage()
is not called, summary updates as it should be. PS 如果未调用setLanguage()
,则摘要会按原样更新。
Instead of代替
langPreference.setSummary(langPreference.getEntry());
Try尝试
langPreference.setSummary(PreferenceManager.getDefaultSharedPreferences(context).getString("key", "default value");
I use this code to update my Preference summaries, it works everytime.我使用此代码更新我的首选项摘要,它每次都有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.