2013-12-09 8 views
0

У меня есть переключатель, который меняет яркость на моем устройстве от 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(); 

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

ответ

0

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

SharedPreferences.Editor ed = getSharedPreferences("DATA", 0).edit(); 
ed.putBoolean("DATA", true); 
ed.commit(); 
+0

не работа .. это .. –

+0

вылетает, что делает LogCat сказать? –