java - 使用 SharedPreferences 保存复选框,java

标签 java android-studio sharedpreferences

我需要在 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/

相关文章:

Java OOP 三角形的存在性

java - java中读取文本文件时出现空指针

java - 匹配 3 个或更多连续连续字符和连续相同字符的正则表达式

android - 如何在 SharedPreferences 中存储 ArrayList<HashMap<String, String>>?

java - Qulice - 如何在整个项目中禁用需要 package-info.java 的规则?

java - 运行应用程序时布局不显示

android - 如何在我的代码中查看所有可能的空指针异常 lints?

java - 在多项选择游戏中随机化问题

android - PreferenceActivity 错误 : doesn't show selected option after close Activity

flutter - 如何以正确的方式从SharedPreferences获取数据