【发布时间】:2011-06-27 05:48:54
【问题描述】:
我有一个扩展 PreferenceActivity 并显示我的应用程序的首选项屏幕的类。是否可以检查是否对偏好进行了任何更改?
这有帮助...
其他相关帖子: SharedPreferences.onSharedPreferenceChangeListener not being called consistently
public class PreferenceClass extends PreferenceActivity {
OnSharedPreferenceChangeListener listener;
public void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = this.getSharedPreferences("settings", 0);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
int flag = 1;
}
};
prefs.registerOnSharedPreferenceChangeListener(listener);
super.onCreate(null);
addPreferencesFromResource(R.xml.settings);
}
}
【问题讨论】:
-
我看到了太多的方向,这可能取决于您的总体目标。您能否详细说明您检查的时间和目的是什么?
-
@RHughes 我只希望每次进行更改以做某事...刚刚找到此链接stackoverflow.com/questions/2542938/…... 仍然无法使其正常工作...侦听器中的方法永远不会被调用...有什么想法吗???
-
不看代码,我只能猜测你犯了我似乎总是犯的同样错误。我建立了一个伟大的听众,然后忘记将它附加到正确的对象上。此外,请确保您在 onCreate() 方法中或至少在您实际需要侦听器进行侦听之前运行的代码中将侦听器附加到对象。
-
@RHughes 不,我将侦听器附加到对象...不知道它有什么问题...它肯定在创建...无论如何感谢您的回复...
标签: android sharedpreferences android-preferences preferenceactivity