我使用startActivityForResult
从我的第一个活动切换到第二个活动。
在第二个活动中,有多个复选框供用户选择。我从第二个活动中得到结果并致电finish()
。
但是,如果用户改变主意并再次打开第二个活动,则会重新创建,并且将取消选中复选框。
我该如何避免?调用finish()
时是否可以保存复选框的状态?
答案 0 :(得分:0)
您致电finish()
,让系统终止活动。不,你不能这样拯救国家。
我建议使用共享首选项api以密钥值对格式保留任何基本信息。
但你应该阅读https://developer.android.com/guide/topics/data/data-storage.html
或者https://developer.android.com/guide/topics/ui/settings.html
答案 1 :(得分:0)
保存复选框的最佳方式是使用SharedPreferences来声明它。在第二个活动方法中的onStop()中添加此代码以保存复选框状态:
SharedPreferences options = getSharedPreferences("options", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("checkboxState", checkbox.isChecked());
editor.commit();
这个代码在onStart()方法中用于加载复选框状态:
SharedPreferences options = getSharedPreferences("options", 0);
boolean checkboxState = options.getBoolean("checkboxState", false);
checkbox.setChecked(checkboxState);