最近在作一个设置界面,需要用到PreferenceActivity(或者PreferenceFragment也可以),但是遇到个问题,这个Activity用的SharedPreference是固定的,里面的数据存储方式也是固定的,但是我现在要修改的系统原有一套SharedPreference数据。请问如果我想自己控制数据的保存与读取,不让PreferenceActivity自动保存,要如何做呢?再说的直接一些,我现在需要的是ListPreference、SwitchPreference这些组件在相应用户操作时候只回调给我,不要自动保存数据,因为控件自动保存的数据和原有的数据系统冲突了。我试了setOnPreferenceChangeListener(Preference.OnPreferenceChangeListener onPreferenceChangeListener)和setOnPreferenceClickListener(Preference.OnPreferenceClickListener onPreferenceClickListener),都不管用,这些函数在回调给我之后还是会保存数据。我向老大建议变通的解决这个问题,就是在原有的SharedPreference之外再做一套数据,新数据改变后再同步回去,但是被老大否决了,请CSDN的各位大牛给想象办法啊,小弟在此先谢过了。