[销毁活动时保存切换按钮的值,并在活动重新开始时放回切换按钮]] << [

问题描述 投票:0回答:1
enter image description here早上好,我想在应用退出时保存切换按钮的值,并在用户再次启动应用时将其放回。我试过使用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(); } }); }

在此处输入图片描述,早上好,我想在应用退出时保存切换按钮的值,并在用户再次启动应用时将其放回去。我尝试使用onSaveInstanceState,但是...
java android save toggle onsaveinstancestate
1个回答
1
投票
尝试使用SharedPreferences
© www.soinside.com 2019 - 2024. All rights reserved.