Sharedpreferences переключает состояние?

У меня есть переключатель, который меняет яркость на моем устройстве с manual на authomatic. Это работает, но состояние кнопки не сохраняется. Сейчас мне нужны две вещи.

1) Сохраните состояние кнопки с помощью общих настроек 2) Проверьте, когда я открываю приложение, какая яркость в телефоне.

Это переключатель в моем onCreate:

autoBrightToggle = (ToggleButton)v.findViewById(R.id.luminosita);
        autoBrightToggle.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (autoBrightToggle.isChecked()) {
                    setAutoBrightness(true);
                } else {
                    setAutoBrightness(false);
                }
            }
        }); 

и метод:

void setAutoBrightness(boolean value) {
                if (value) {
                    Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
                } else {
                    Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
                }
            }

я пытался таким образом, но не работает:

sPrefdata  = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
        ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.brightoggle); //Dichiaro il toggle
        boolean togglebrightness = sPrefdata.getBoolean("DATA", false);  a
            if (togglebrightness ) //if (tgpref) may be enough, not sure
            {

                autoBrightToggle .setChecked(true);
            }
                else
            {
                autoBrightToggle .setChecked(false);
            }

и так в onClick

SharedPreferences sPref = getSharedPreferences(PREFS_NAME, 0);
            Editor editor = sPref.edit();
            editor.putBoolean("DATA", true); //or false 
            editor.apply();

но не работает. Не сохраняет состояние и метод перестает работать. Как я могу решить? И как я могу проверить, какая реальная яркость?


person David_D    schedule 09.12.2013    source источник


Ответы (1)


Попробуйте приведенный ниже фрагмент, я использовал его для сохранения строк в общих настройках.

SharedPreferences.Editor ed = getSharedPreferences("DATA", 0).edit();
ed.putBoolean("DATA", true);
ed.commit();
person Naeem A. Malik    schedule 09.12.2013
comment
что говорит logcat? - person Naeem A. Malik; 10.12.2013