尝试动态更新特定首选项屏幕摘要哪些嵌套子选项(此首选项屏幕具有自己的键名称)。我的目标是首选屏幕摘要应该通过它的子视图或嵌套视图中的切换器首选项的状态进行更新。我尝试使用此处的指南How to listen for preference changes within a PreferenceFragment?,但这仅显示了如何动态更新特定的键引用。
使用键名为特定首选项屏幕实现此实现的任何指针?
答案 0 :(得分:1)
您需要将newValue转换为布尔值并设置摘要,如代码所示。
Preference pref = findPreference(getString(R.string.key_of_pref));
PreferenceScreen parent = (PreferenceScreen) sf.findPreference("prefs_root");
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean newValueBool = (Boolean) newValue;
parent.setSummary(newValueBool ? "Summary is true" : "Summary is false");
((BaseAdapter) getPreferenceScreen().getRootAdapter()).notifyDataSetChanged();
// true to update the state of the Preference with the new value
// in case you want to disallow the change return false
return true;
}
});