When the language in ListPreference
is changed, setLanguage()
method from this answer in onSharedPreferenceChanged()
method in my SettingsFragment
class is called.
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.
ListPreference langPreference = (ListPreference) findPreference(PREF_LANGUAGE);
langPreference.setSummary(langPreference.getEntry());
P.S. If setLanguage()
is not called, summary updates as it should be.