2013-12-09 183 views
0

我有一個開關,將我的設備中的亮度從manual更改爲authomatic。它可以工作,但按鈕的狀態不會保存。我現在需要兩件事情。Sharedpreferences切換狀態?

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說什麼? –