如何获取复选框优先级值?

时间:2012-03-20 20:34:09

标签: java android

我在偏好设置中有复选框。如果选中复选框,我想保持屏幕打开,如果未选中复选框,则不保持屏幕显示。

我想要这样的事情:

boolean keepScreen = sharedPrefs.getBoolean("chck_screen", false);

if (keepScreen.equals(false)) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

}

请帮助。

2 个答案:

答案 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)获取偏好设置值