简体   繁体   English

ListPreference 仅在第二次选择条目时更新其值

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

相关问题 ListPreference 的值永远不会更新 - Value of a ListPreference never updates 通过代码仅第二次更改ListPreference条目 - Changing ListPreference entries by code working only the second time 选择第一个Listpreference值时,在首选项片段中更改第二个Listpreference值 - Change second Listpreference values in preference fragment when first Listpreference value selected Android Studio 仅在第二次运行时更新更改 - Android Studio only updates changes when It run a second time ListPreference仅返回默认值 - ListPreference only returns Default Value 仅当应用程序重新启动时,ListView才会更新条目 - ListView updates the entry only when the application is restarted again Android ListPreference条目文本,而不是不扩展PreferenceFragment的Activity或Fragment中的条目值 - Android ListPreference entry text instead of entry value from Activity or Fragment that doesn't extend PreferenceFragment onTouchListener仅在第二次按下时有效 - onTouchListener only works when pressed for second time ListPreference更改值时不调用SharedPreferences.OnSharedPreferenceChangeListener - SharedPreferences.OnSharedPreferenceChangeListener not called when ListPreference changes value 第二次单击时未设置值 - Value is not getting set when click second time
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM