Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SharedReferences不保存复选框状态_Android_Sharedpreferences_Android Checkbox - Fatal编程技术网

Android SharedReferences不保存复选框状态

Android SharedReferences不保存复选框状态,android,sharedpreferences,android-checkbox,Android,Sharedpreferences,Android Checkbox,我正在使用SharedReferences开发任务列表应用程序。但它不会保存复选框状态。我想在用户单击复选框时保存。用户退出应用程序并再次看到它已更新状态后。如何保存复选框状态? 这是我的代码(已修复并正在运行) 您需要更新SharedReferencesEverytimeCheckBoxcheck status is changed(检查状态已更改)中的值。 在setOnCheckedChangeListener中删除此行Settings.this.putBooleanInPreference

我正在使用SharedReferences开发任务列表应用程序。但它不会保存复选框状态。我想在用户单击复选框时保存。用户退出应用程序并再次看到它已更新状态后。如何保存复选框状态? 这是我的代码(已修复并正在运行)


您需要更新
SharedReferencesEvery
time
CheckBox
check status is changed(检查状态已更改)中的值。 在
setOnCheckedChangeListener
中删除此行
Settings.this.putBooleanInPreferences(isChecked,“isChecked”)
中的注释

因此,您的听众将如下所示:

cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                Log.i("boolean", "" + isChecked);

                putBooleanInPreferences(isChecked,"isChecked");
            }
        });

希望这有帮助。

试试这种方法,希望这能帮助你解决问题。

public class TaskList extends Activity {

    private CheckBox cb1;
    private CheckBox cb2;
    private CheckBox cb3;
    private CheckBox cb4;
    private SharedPreferences sharedPreferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_tasks);
        super.onCreate(savedInstanceState);
        cb1 = (CheckBox) findViewById(R.id.checkBox1);
        cb2 = (CheckBox) findViewById(R.id.checkBox2);
        cb3 = (CheckBox) findViewById(R.id.checkBox3);
        cb4 = (CheckBox) findViewById(R.id.checkBox4);

        sharedPreferences = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);

        cb1.setChecked(sharedPreferences.getBoolean("cb1",false));
        cb2.setChecked(sharedPreferences.getBoolean("cb2",false));
        cb3.setChecked(sharedPreferences.getBoolean("cb3",false));
        cb4.setChecked(sharedPreferences.getBoolean("cb4",false));
        cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb1", isChecked);
                editor.commit();
            }
        });
        cb2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb2", isChecked);
                editor.commit();
            }
        });
        cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb3", isChecked);
                editor.commit();
            }
        });
        cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb4", isChecked);
                editor.commit();
            }
        });

    }
}

我知道您只想实现CB1的这种行为,为什么保存pref的行被注释掉了,为什么它引用未知类
设置
?是的,我只想cb1@popovitsj是的,我有块设置行。你的回答也很有帮助。你只需晚一点回答。谢谢你的帮助。
public class TaskList extends Activity {

    private CheckBox cb1;
    private CheckBox cb2;
    private CheckBox cb3;
    private CheckBox cb4;
    private SharedPreferences sharedPreferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_tasks);
        super.onCreate(savedInstanceState);
        cb1 = (CheckBox) findViewById(R.id.checkBox1);
        cb2 = (CheckBox) findViewById(R.id.checkBox2);
        cb3 = (CheckBox) findViewById(R.id.checkBox3);
        cb4 = (CheckBox) findViewById(R.id.checkBox4);

        sharedPreferences = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);

        cb1.setChecked(sharedPreferences.getBoolean("cb1",false));
        cb2.setChecked(sharedPreferences.getBoolean("cb2",false));
        cb3.setChecked(sharedPreferences.getBoolean("cb3",false));
        cb4.setChecked(sharedPreferences.getBoolean("cb4",false));
        cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb1", isChecked);
                editor.commit();
            }
        });
        cb2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb2", isChecked);
                editor.commit();
            }
        });
        cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb3", isChecked);
                editor.commit();
            }
        });
        cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("cb4", isChecked);
                editor.commit();
            }
        });

    }
}