2012-05-09 40 views
0

我有一個偏好複選框,我得到的價值從偏好中獲取價值?

SharedPreferences myPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

從喜好我的複選框被默認選中,我用這個

if(myPreferences.getBoolean("checkbox", false) == true) 

檢查,如果用戶改變複選框狀態。如果上述條件爲真,我會在狀態欄中收到通知(我不會提供通知和服務的代碼)。 所以,我的問題是,我沒有得到通知,直到我點擊首選項,然後最後我的PreferenceManager從複選框和我的通知觸發器獲取值。 我該如何解決這個問題? 謝謝,狼。

回答

2

您的複選框可能默認爲「true」,但您的設置不是。如果您的設置完全沒有設置,您將從getBoolean獲取默認設置,即false。你可能在尋找這樣的:

if(myPreferences.getBoolean("checkbox", true) == true) 

它說:如果你不能找到偏好(還),使用默認的,這是true

+0

嘿抱歉延遲,這並沒有解決我的問題。 只有當我輸入偏好設置活動時,我纔會收到通知。 – Wolf87