Kris
Kris

Reputation: 921

how to save state of dynamically created checkbox in android

i am creating number of check boxes dynamically and i have done some logic to select only one at a time . now i just want to save the state of the selected checkbox and when i come back from the next screen it should be selected. below i have given the code for checkbox

cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {


            if (isChecked) {                    
                if (hash.size() > 0) {
                    hash.get("1").setChecked(false);
                }                                       

                hash.put("1", buttonView);
                selAnyone = true;
            } else {
                hash.clear();
                selAnyone = false;

            }

Upvotes: 0

Views: 1233

Answers (1)

Pragnani
Pragnani

Reputation: 20155

Edit:

Whenever you are navigating to the current activity to the next activity , save the id of selected check box like this

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString("checkboxid","1");
      editor.commit();

or simply send it via Intent

yourintent.putExtra("checkboxid","1"); // selected checkbox id

And then

If you are using the intent instead of sharedpreferences put the same extra when navigating back to the current screen.

First using SharedPreferences:

In the onCreate of your Activity check whether pref contains checkbox id or not

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name",null);  // if the  preference doesn't exist it returns null

if(name!=null)
{
 int checkedid=Integer.parseInt(name);
checkbox[checkid].setChecked(true);
}

Same logic follows for the intent extra also check for checkboxid , if it doesn't exist don't check anything, if it exists check the checkbox with assoicated id


Use SharedPreferences

Example:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("checkboxid","1");
  editor.commit();

Get like this

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name","checkboxid");

Upvotes: 2

Related Questions