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