为什么swtich会回到初始阶段?

时间:2017-08-01 08:36:05

标签: java android

我已经创建了swich并且我将布尔值保存到sharedPreferences,但是当我恢复活动时,交换机返回关闭,而我想保持开启如果它已经开启,而如果它被关闭以保持它关闭

这是开关代码:

        buttonSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            if(isChecked){
                switched = "ON";
                SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
                editor.putBoolean("SWTCH", buttonSwitch.isChecked());
                editor.commit();
            }else{
                switched = "OFF";
                SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
                editor.putBoolean("SWTCH", buttonSwitch.isChecked());
                editor.commit();
            }
        }
    });

这里是onCreate SharedPreferences

    SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyle", MODE_PRIVATE);
    buttonSwitch.setChecked(sharedPrefs.getBoolean("SWTCH", false));

2 个答案:

答案 0 :(得分:6)

您正在访问完全不同的共享首选项实例。

public function search(Request $request)
{
   ....
   $request->merge(['solditems'=>$solditems]);
   $this->pdfview()
}


public function pdfview(Request $request)
{
   $solditems = $request->get('solditems');
   ....
}

"com.example.xyle"

请将它们改为相等

答案 1 :(得分:1)

使用相同的偏好名称进行阅读和写作。

您还可以将onCheckedChanged增强为:

        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                switched = isChecked ? "ON":"OFF";
                SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
                editor.putBoolean("SWTCH", isChecked);
                editor.commit();
        }