我需要在 android studio 中的应用程序中保存设置选项卡的复选框值来更改灵敏度,但我无法弄清楚为什么我的 SharedPreferences 不起作用,我想我会尝试将复选框隐藏为 boolean 值,但这似乎没有保存我的数据。
代码:
private CheckBox checkSens;
private boolean cbValue;
private static boolean finalSens;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
finalSens = LoadPrefs();
checkSens = (CheckBox) findViewById(R.id.checkSens);
checkSens.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
savePrefs("CheckBox", isChecked);
}
});
checkSens = (CheckBox) findViewById(R.id.checkSens);
}
public static boolean getCheckSens() {
return finalSens;
}
private boolean LoadPrefs()
{
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
cbValue = sp.getBoolean("CheckBox", false);
return cbValue;
}
private void savePrefs(String key, boolean value)
{
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor edit = sp.edit();
edit.putBoolean("CheckBox", value);
edit.commit();
}
最佳答案
请使用setOnCheckedChangeListener而不是setOnClickListener来获取复选框值。请引用以下代码。
checkSens = (CheckBox) findViewById(R.id.checkSens);
checkSens .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompundButton button, boolean isChecked)
{
savePrefs("CheckBox", isChecked);
}
});
关于java - 使用 SharedPreferences 保存复选框,java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61970486/