2010-11-23 57 views
0

我正試圖學習如何爲android做動態壁紙。我有它的工作,現在我想添加一些喜好。所以,我創建了一個偏好活動,並遵循了我可以找到的所有示例。如何在android開發中捕獲CheckBoxPreference的更改?

我可以捕獲ListBoxPreferences就好了,但'onSharedPreferenceChanged'方法永遠不會調用複選框已被更改。

是否需要添加額外的代碼才能捕獲複選框更改?在偏好設置中是否有最佳做法?

我一直在反對這個問題我的頭撞了兩天,任何幫助將非常感謝!

謝謝!

回答

0

@Josh - 很好的回答。

爲了完整起見,我想補充一點,你應該設置一些東西,讓你在PreferenceActivity的onResume()方法中註冊更改並在onPause()方法中取消註冊。

this question的答案有一個很好的示例代碼取自股票Android示例程序。

另外,您還可以在活動的onCreate()中爲每個首選項註冊偵聽器,並分別處理它們上的事件。

0

你註冊接收onSharedPreferenceChanged回調?

添加到您的主要活動的onCreate方法(並確保落實onSharedPreferenceChanged):

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).registerOnSharedPreferenceChangeListener(this); 
+0

感謝您的建議。但我已經做到了。在onSharedPreferenceChanged方法內我這樣做:System.out.println(prefs.getAll()。toString());它打印SharedPreference的所有鍵和值。但是,複選框的關鍵字未列出。因此,無論出於何種原因,複選框都未被偵聽。有任何想法嗎? – max 2010-11-23 21:08:27

相關問題