I need to change Check Box Preference inside the Preference activity, but it not seems to work:
public class SettingsActivity extends PreferenceActivity {
static CheckBoxPreference autoP;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public static class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener{
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
autoP = (CheckBoxPreference)findPreference("autoP");
autoP.setOnPreferenceChangeListener(autoP_listener);
OnPreferenceChangeListener autoP_listener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,Object newValue) {
autoP.setDefaultValue((String) newValue);
if (newValue.toString().equals("true"))
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
else
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
return false;
}
};
}
}
This should work:
final CheckBoxPreference autoP = (CheckBoxPreference) getPreferenceManager().findPreference("autoP");
autoP.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ((Boolean)newValue == true) {
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}else {
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
return true;
}
});