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

Sab*_*bre 2 java android

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

我想要这样的东西:

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

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

}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

dym*_*meh 13

如果您正在使用PreferenceActivity并使用键"checkbox_preference"(将其重命名为您拥有的任何内容)以XML格式声明复选框,则可以执行以下操作:

CheckBoxPreference pref = (CheckBoxPreference) findPreference("checkbox_preference");
Run Code Online (Sandbox Code Playgroud)

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;
            }
        });
Run Code Online (Sandbox Code Playgroud)