введите описание изображения здесь Добрый день, я хочу сохранить значение кнопок переключения при выходе из приложения и вернуть их обратно, когда пользователь снова запустит приложение. Я пытался использовать onSaveInstanceState, но он просто не работает. Любая помощь будет оценена. Спасибо.
редактировать: я также пытался использовать настройки. редактировать: я также пытался использовать настройки. редактировать: я также пытался использовать настройки. редактировать: я также пытался использовать настройки. редактировать: я также пытался использовать настройки. редактировать: я также пытался использовать настройки.
@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();
}
});
}