gpt4 book ai didi

android - 如何检测首选项中是否进行了更改?

转载 作者:IT老高 更新时间:2023-10-28 13:14:38 24 4
gpt4 key购买 nike

我有一个扩展 PreferenceActivity 并显示我的应用程序的首选项屏幕的类。是否可以检查是否对偏好进行了任何更改?

这有帮助...

http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html

其他相关帖子: 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);
}
}

最佳答案

SharedPreferences.OnSharedPreferenceChangeListener spChanged = new
SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// your stuff here
}
};

在您的 PreferenceActivity 中,即使其成为您的 PreferenceActivity 类的成员,然后在 PreferenceActivity 中执行 registerOnSharedPreferenceChangeListener(spChanged) .onCreate() 方法。

我就是这样做的,我从来没有遇到过问题。

否则,有问题的是您在监听器中进行的条件检查。贴出代码。

编辑:

根据您发布的代码,您应该将 prefs 设为类成员变量,使其具有全局范围。

并使用 prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 而不是 getSharedPreferences,因为您尚未创建该文件。

要创建文件,您需要使用 PreferenceManager。要获取 PreferenceManager,请使用 Activity.getPreferenceManager()

关于android - 如何检测首选项中是否进行了更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4997907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com