我有一個類擴展了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);
}
}
我看到太多的方向,這可能取決於你的總體目標可能去。你能否拋出一些關於什麼時候檢查和到底是什麼的細節? – 2011-02-14 22:48:20
@RHughes我只是想每次都做一些改變,只是發現這個鏈接http://stackoverflow.com/questions/2542938/sharedpreferences-onsharedpreferencechangelistener-not-being-called-consistently ...仍然無法獲得它工作,雖然...在聽衆的方法永遠不會被調用...任何想法? – mixkat 2011-02-14 23:14:04
沒有看代碼,我只能猜測你正在犯同樣的錯誤,我似乎總是這樣做。我建立一個偉大的傾聽者,然後忘記將它附加到正確的對象。此外,確保您將偵聽器附加到onCreate()方法中的對象,或者至少在您實際需要偵聽器偵聽之前運行的代碼中。 – 2011-02-14 23:38:41