user12042954
user12042954

Reputation:

Saving the value of toggle buttons when activity gets destroyed and put them back when activity starts again

enter image description hereGood day, I want to save the value of the toggle buttons when the app exits and put them back when the user starts the app again. I've tried using onSaveInstanceState but it just doesn't work. Any help would be appreciated. Thank you.

edit: I also tried using preferences. edit: I also tried using preferences. edit: I also tried using preferences. edit: I also tried using preferences. edit: I also tried using preferences. edit: I also tried using preferences.


    @Override
    protected void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putBoolean("white", white.isChecked());
        savedInstanceState.putBoolean("yellow", yellow.isChecked());
        savedInstanceState.putBoolean("orange", orange.isChecked());
        savedInstanceState.putBoolean("red", red.isChecked());
        savedInstanceState.putBoolean("blue", blue.isChecked());
        savedInstanceState.putInt("whiteI", whiteI.getVisibility());
        savedInstanceState.putInt("yellowI", yellowI.getVisibility());
        savedInstanceState.putInt("orangeI", orangeI.getVisibility());
        savedInstanceState.putInt("redI", redI.getVisibility());
        savedInstanceState.putInt("blueI", blueI.getVisibility());

    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        white.setChecked(savedInstanceState.getBoolean("white"));
        yellow.setChecked(savedInstanceState.getBoolean("yellow"));
        orange.setChecked(savedInstanceState.getBoolean("orange"));
        red.setChecked(savedInstanceState.getBoolean("red"));
        blue.setChecked(savedInstanceState.getBoolean("blue"));

        whiteI.setVisibility(savedInstanceState.getInt("whiteI"));
        yellowI.setVisibility(savedInstanceState.getInt("yellowI"));
        orangeI.setVisibility(savedInstanceState.getInt("orangeI"));
        redI.setVisibility(savedInstanceState.getInt("redI"));
        blueI.setVisibility(savedInstanceState.getInt("blueI"));


    }

    @Override
    protected void onPause() {
        super.onPause();
        SharedPreferences.Editor editPreferences = preferences.edit();
        editPreferences.putBoolean("white", white.isChecked());
        editPreferences.putBoolean("yellow", yellow.isChecked());
        editPreferences.putBoolean("orange", orange.isChecked());
        editPreferences.putBoolean("red", red.isChecked());
        editPreferences.putBoolean("blue", blue.isChecked());
        editPreferences.putInt("whiteI", whiteI.getVisibility());
        editPreferences.putInt("yellowI", yellowI.getVisibility());
        editPreferences.putInt("orangeI", orangeI.getVisibility());
        editPreferences.putInt("redI", redI.getVisibility());
        editPreferences.putInt("blueI", blueI.getVisibility());
        editPreferences.commit();

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null) Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
        setContentView(R.layout.activity_main);
        background = findViewById(R.id.imageViewBg);
        yellow = findViewById(R.id.tgBtnAlarm);
        orange = findViewById(R.id.tgBtnAlert);
        red = findViewById(R.id.tgBtnCritical);
        blue = findViewById(R.id.tgBtnRecession);
        white = findViewById(R.id.tgBtnNormal);

        yellowI = findViewById(R.id.imageViewYellow);
        redI = findViewById(R.id.imageViewRed);
        blueI = findViewById(R.id.imageViewBlue);
        orangeI = findViewById(R.id.imageViewOrange);
        whiteI = findViewById(R.id.imageViewWhite);

        btnExit = findViewById(R.id.btnExit);

        preferences = getSharedPreferences("pref",MODE_PRIVATE);
        white.setChecked(preferences.getBoolean("white"));
        yellow.setChecked(preferences.getBoolean("yellow"));
        orange.setChecked(preferences.getBoolean("orange"));
        red.setChecked(preferences.getBoolean("red"));
        blue.setChecked(preferences.getBoolean("blue"));
        whiteI.setVisibility(preferences.getInt("whiteI"));
        yellowI.setVisibility(preferences.getInt("yellowI"));
        orangeI.setVisibility(preferences.getInt("orangeI"));
        redI.setVisibility(preferences.getInt("redI"));
        blueI.setVisibility(preferences.getInt("blueI"));

        glide();
        allow();
        volume();

        btnExit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               finish();
            }
        });


    }

Upvotes: 0

Views: 47

Answers (1)

Suhas Ch
Suhas Ch

Reputation: 63

Try using SharedPreferences

SharedPreferences savePreferences = getSharedPreferences("pref",MODE_PRIVATE);
SharedPreferences.Editor editPreferences = savePreferences.edit();
editPreferences.putBoolean("white", white.isChecked());
editPreferences.putBoolean("yellow", yellow.isChecked());
editPreferences.putBoolean("orange", orange.isChecked());
editPreferences.putBoolean("red", red.isChecked());
editPreferences.putBoolean("blue", blue.isChecked());
editPreferences.putInt("whiteI", whiteI.getVisibility());
editPreferences.putInt("yellowI", yellowI.getVisibility());
editPreferences.putInt("orangeI", orangeI.getVisibility());
editPreferences.putInt("redI", redI.getVisibility());
editPreferences.putInt("blueI", blueI.getVisibility());
editPreferences.commit();

To retrive data

    white.setChecked(savePreferences.getBoolean("white"));
    yellow.setChecked(savePreferences.getBoolean("yellow"));
    orange.setChecked(savePreferences.getBoolean("orange"));         
    red.setChecked(savePreferences.getBoolean("red"));
    blue.setChecked(savePreferences.getBoolean("blue"));    
    whiteI.setVisibility(savePreferences.getInt("whiteI"));
    yellowI.setVisibility(savePreferences.getInt("yellowI"));
    orangeI.setVisibility(savePreferences.getInt("orangeI"));
    redI.setVisibility(savePreferences.getInt("redI"));
    blueI.setVisibility(savePreferences.getInt("blueI"));

Upvotes: 1

Related Questions