我在首选项中有一个复选框,我得到了值
SharedPreferences myPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
我默认选中偏好设置中的复选框,我正在使用此
if(myPreferences.getBoolean("checkbox", false) == true)
检查用户是否更改复选框状态。如果上面的条件为真,我会在状态栏中收到通知(我不会提供通知和服务的代码)。 所以,我的问题是,在我点击首选项之前我没有收到通知,最后我的PreferenceManager从复选框和我的通知触发器中获取值。 我该如何解决这个问题? 谢谢,沃尔夫。
答案 0 :(得分:2)
您的复选框可能默认为“true”,但您的设置不是。如果您的设置完全没有设置,则会获得getBoolean
的默认设置,即false
。你可能正在寻找这个:
if(myPreferences.getBoolean("checkbox", true) == true)
表示:如果找不到偏好(尚未),请使用默认值true
。