当对话框关闭时,从 PreferenceActivity 调用的自定义 DialogPreference 不会调用 OnPreferenceChange()。
我认为 persistXXXX() 是触发器:
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if(positiveResult) {
persistString(s);
}
}
但是 onPreferenceChanged() 没有被调用。
所有其他标准首选项类型都有效(例如 EditTextPreference、ListPreference 等)。
所以问题是:是什么触发了这种首选项类型的 OnPreferenceChange()?
最佳答案
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(this);
}
我认为,您缺少 registerOnSharedPreferenceChangeListener
关于android - 自定义 DialogPreference 不会触发 PreferenceActivity 中的 OnPreferenceChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246153/