У меня есть переключатель, который меняет яркость на моем устройстве от manual
до authomatic
. Он работает, но состояние кнопки не сохраняется. Сейчас мне нужны две вещи.Общие сведения о переключении состояния?
1) Сохраните состояние кнопки, используя sharedpreferences 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);
}
}
я tryied таким образом, но не работает:
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();
но не работает. Не сохраняет состояние, и метод останавливается. Как я могу решить? И как я могу проверить, какова фактическая яркость?
не работа .. это .. –
вылетает, что делает LogCat сказать? –