Daniele
Daniele

Reputation: 4343

How do I store if a CheckBox has been checked?

I have an Activity that doesn't have to be displayed anymore if a "Don't show anymore" CheckBox is checked but I can't figure out how to make it work.

This is what I have tried up until now:

public class PopUpInfoActivity extends Activity {
static final String PREFS = "preference_file";

@Override
public void onCreate(Bundle state){
    super.onCreate(state);
    setContentView(R.layout.popupinfo_layout);


    CheckBox chk = (CheckBox) findViewById(R.id.dontshow_checkbox);
    chk.setChecked(PreferenceManager.getDefaultSharedPreferences(this).getBoolean("value", false));

    chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            //store isChecked to Preferences
            SharedPreferences settings = getSharedPreferences(PREFS,0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putBoolean("isChecked", false);

            PreferenceManager.getDefaultSharedPreferences(PopUpInfoActivity.this).edit().putBoolean("value", isChecked).apply();
        }
    });
}

This code still doesn't work because if I check the CheckBox and kill and restart the app, the activity still appears how can I make it work?

I would really appreciate any help!

Upvotes: 0

Views: 158

Answers (2)

sushildlh
sushildlh

Reputation: 9056

Use this for setting checkBox value

chk.setChecked(PreferenceManager.getDefaultSharedPreferences(this).getBoolean("value", false));

use this for getting checkBox value.

chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

       @Override
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
          //store isChecked value in shareprefernce

          PreferenceManager.getDefaultSharedPreferences(PopUpInfoActivity.this).edit().putBoolean("value", isChecked).commit();
       }
   }
); 

enjoy coding.

Upvotes: 3

you need to work with the preferences properly...

Write it:

SharedPreferences spref = getSharedPreferences("your_prefs_name", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = spref.edit();
editor.putBoolean ("myChechButtonWasChecked", prefVal); //
editor.commit();

Read it

SharedPreferences preferences = getPreferences(Activity.MODE_PRIVATE);
bool storedPreference = preferences.getBoolean("myChechButtonWasChecked", false);

Upvotes: 0

Related Questions