gpt4 book ai didi

android - 共享首选项不保存

转载 作者:行者123 更新时间:2023-11-29 19:06:13 25 4
gpt4 key购买 nike

我的设置对话框中的共享首选项未保存。当我单击保存,然后重新打开对话框时,首选项将重置为原始值。我觉得我错过了什么。任何帮助将不胜感激!

注意事项:

  1. 此对话框出现在我的主要 fragment 中。不确定这是否有所作为。
  2. 我已经在 edit.commit() 之前尝试过 edit.clear() 但没有成功。

谢谢!!

private void settingsButton() {

if(soundsOn == true) {
mplayerButtonClick.start();
}
//set up dialog
final Dialog setupDialog = new Dialog(getActivity());
setupDialog.setContentView(R.layout.settings);
setupDialog.setTitle("Choose Settings");
setupDialog.setCancelable(true);

TextView topSettings = (TextView)setupDialog.findViewById(R.id.chosensettings);
topSettings.setTypeface(tf);

soundsToggle = (Switch)setupDialog.findViewById(R.id.soundstoggle);
soundsToggle.setTypeface(tf);
if(soundsOn == true){
soundsToggle.setChecked(true);
}else if(soundsOn == false){
soundsToggle.setChecked(false);
}
soundsToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
s = true;
} else {
s = false;
}

}
});

cuesToggle = (Switch)setupDialog.findViewById(R.id.cuestoggle);
cuesToggle.setTypeface(tf);
final boolean cuesToggleOn = preferences.getBoolean("cues", true);
if (cuesToggleOn == true){
cuesToggle.setChecked(true);
}else if(cuesToggleOn == false){
cuesToggle.setChecked(false);
}else{
cuesToggle.setChecked(true);
}
cuesToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cuesToggle.isChecked()){
c = true;
}else{
c = false;
}
}
});


listOnlyToggle = (Switch)setupDialog.findViewById(R.id.listonly);
listOnlyToggle.setTypeface(tf);
listOnlyOn = preferences.getBoolean("listonly", false);
if(listOnlyOn == true){
listOnlyToggle.setChecked(true);
}else if(listOnlyOn == false){
listOnlyToggle.setChecked(false);
}
listOnlyToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
l = true;
} else {
l = false;
}

}
});


Button saveSetting = (Button)setupDialog.findViewById(R.id.save);
saveSetting.setTypeface(tf);
saveSetting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(soundsOn == true) {
mplayerButtonClick.start();
}

if (s = true){
editor.putBoolean("sounds", true);
soundsOn = true;
}else if (s = false) {
editor.putBoolean("sounds", false);
soundsOn = false;
}

if (c = true){
editor.putBoolean("cues", true);
}else if (c = false){
editor.putBoolean("cues", false);
}

if (l = true){
editor.putBoolean("listonly", true);
}else if (l = false){
editor.putBoolean("listonly", false);
}

editor.commit();

Toast.makeText(getActivity(), "saved!", Toast.LENGTH_LONG).show();

setupDialog.dismiss();

}
});

setupDialog.show();
}

最佳答案

条件 s = true 始终为“true”。

描述:此检查分析方法控制和数据流,以报告始终为真或假的可能条件、其值被静态证明为常量的表达式,以及可能导致可空性契约违规的情况。

判断一个值是否为 bool 值,需要使用条件if(s)

如果你使用 if(s == true)

描述:报告毫无意义或毫无意义的复杂 bool 表达式。此类表达式包括与 true 的 anding、与 false 的 oring、与 bool 文字的相等比较或 bool 文字的否定。此类表达式可能是未完全遵循直至完成的自动重构的结果,并且在任何情况下都不太可能是开发人员打算做的。

您在代码中使用的更好方法是 if(s)

关于android - 共享首选项不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com