好的,我开始从 Google 的 android 实现这个可怕的代码。未调用 OnSharedPreferenceChangeListener。这是我的代码,你能建议吗?
类定义:
private SharedPreferences sPrefs;
private PreferenceChangedListener prefsChangedListener;
我有一个私人内部课程:
private class PreferenceChangedListener implements
OnSharedPreferenceChangeListener {
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
if (key == "highThreshold") {
try {
highThreshold = Float.parseFloat(sharedPreferences
.getString(key, "0"));
} catch (Exception e) {
}
}
}
}
在 OnResume 中尝试了以下代码,并在“Voorkeuren”首选项活动启动后注册了侦听器。两者都失败了。
sPrefs = getPreferences(MODE_PRIVATE);
prefsChangedListener = new PreferenceChangedListener();
sPrefs.registerOnSharedPreferenceChangeListener(prefsChangedListener );
我定义了一个扩展 PreferenceActivity 的类 Voorkeuren
public class Voorkeuren extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_voorkeuren, menu);
return true;
}
}
我打开如下:
Intent intent = new Intent(getBaseContext(),Voorkeuren.class);
startActivity(intent);
该类显示良好,并存储会话之间的值。但是如果设置改变,我的应用程序不应该轮询。有任何想法吗?我对 SharedPreferences.Editor 有一些疑问,但我不确定它是如何相关的。