Love Viva
Love Viva

Reputation: 25

How to save state of CheckBox after exit?

In my app ,one interface has some checkBoxes,I wish after I exit the interface, the CheckBoxes should maintain the state.So next time I enter it can show what I have done last time.I have used SharedPreferrences to achieve this.

checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
// TODO Auto-generated method stub
Editor editor = getSharedPreferences("syllabus", 0).edit();
editor.putBoolean("cbx1_ischecked", isChecked);
editor.commit();
}
    });
checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
    // TODO Auto-generated method stub
    Editor editor = getSharedPreferences("syllabus", 0).edit();
    editor.putBoolean("cbx2_ischecked", isChecked);
    editor.commit();
    }

});

But it doesn't work. when I return to this page, All checkBox show state that "every item is unselected ".

How can I realize the function I wish?

Upvotes: 0

Views: 1997

Answers (2)

Talha
Talha

Reputation: 12717

After put date getSharedPreferences, You have to initialize your checkboz state with this data in onCreate, like below

// onCreate

SharedPreferences settings = getSharedPreferences("syllabus", 0);
Boolean isChecked = settings.getBoolean("cbx1_ischecked", false);
checkbox1.setChecked(isChecked );

Upvotes: 3

Andrii Chernenko
Andrii Chernenko

Reputation: 10194

Your values are saved to SharedPreferences, but that doesn't mean they are automatically restored to the corresponding checkboxes. You need to read them from SharedPreferences and set your checkboxes when your activity starts, as @talhakosen mentioned.

Besides, you don't need to write your values to SharedPreferences every time they change. It would be enough to store them when user leaves your activity, i.e. in onStop() method.

Upvotes: 0

Related Questions