Reputation:
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
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