我正在尝试动态更新嵌套子选项的特定首选项屏幕摘要(此首选项屏幕有自己的键名)。我的目标是首选项屏幕摘要应该通过其 subview 或嵌套 View 中的切换首选项状态进行更新。我尝试使用此处的指南 How to listen for preference changes within a PreferenceFragment?但这只展示了如何动态更新特定的键引用。
有任何关于使用键名为特定首选项屏幕实现此实现的指示吗?
最佳答案
您需要将 newValue 转换为 bool 值并设置摘要,如代码所示。
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;
}
});
关于android - 从切换首选项状态设置首选项屏幕摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018811/