我已经创建了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));
答案 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();
}