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.