我在偏好设置中有复选框。如果选中复选框,我想保持屏幕打开,如果未选中复选框,则不保持屏幕显示。
我想要这样的事情:
boolean keepScreen = sharedPrefs.getBoolean("chck_screen", false);
if (keepScreen.equals(false)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
请帮助。
答案 0 :(得分:13)
如果您正在使用PreferenceActivity,并使用键“checkbox_preference”(将其重命名为您拥有的任何内容)以XML格式声明复选框,则可以执行以下操作:
CheckBoxPreference pref = (CheckBoxPreference) findPreference("checkbox_preference");
pref.isChecked();如果被检查则返回
此外,您可以在值更改时设置侦听器
pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue)
{
boolean checked = Boolean.valueOf(newValue.toString());
//set your shared preference value equal to checked
return true;
}
});
答案 1 :(得分:3)
您还可以使用PreferenceManager.getSharedPreferences().getBoolean(String key, boolean defValue)
获取偏好设置值