更新时间:2023-12-01 11:01:46
做
SharedPreferences.OnSharedPreferenceChangeListener spChanged = new
SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// your stuff here
}
};
在您的 PreferenceActivity
中,即使其成为您的 PreferenceActivity
类的成员,然后在 PreferenceActivity 中执行
方法.registerOnSharedPreferenceChangeListener(spChanged)
.onCreate()
In your PreferenceActivity
, ie make it a member of your PreferenceActivity
class and then do registerOnSharedPreferenceChangeListener(spChanged)
in the PreferenceActivity.onCreate()
method.
这就是我所做的,我从来没有遇到过问题.
That's what I do and I never have a problem.
否则是您在侦听器中的条件检查有问题.贴上代码.
Else it's your conditional checking in the listener that is at fault. Post the code.
根据您发布的代码,您应该将 prefs
设为类成员变量,以便它具有全局作用域.
From the code you posted, you should make prefs
a class member variable so it has a global scope.
然后做 prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
而不是 getSharedPreferences
因为你还没有创建那个文件.
And do prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
instead of getSharedPreferences
because you haven't created that file.
要创建文件,您需要使用 PreferenceManager
.要获得 PreferenceManager
,请使用 Activity.getPreferenceManager()
.
To create a file you need to use PreferenceManager
. To get a PreferenceManager
, use Activity.getPreferenceManager()
.