共享偏好切换状态?

时间:2013-12-09 16:07:19

标签: java android sharedpreferences togglebutton brightness

我有一个切换按钮,可以将设备的亮度从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);
                }
            }

我以这种方式尝试但不起作用:

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();

但不起作用。不保存状态,方法停止工作。我怎么解决?我怎样才能检查实际亮度是多少?

1 个答案:

答案 0 :(得分:0)

尝试下面给出的代码段,我用它来保存共享首选项中的字符串。

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