簡體   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