我startActivityForResult
习惯从我的第一个活动切换到第二个活动。在第二个活动中,有多个复选框供用户选择。我从第二个活动中得到结果并调用finish()
.
但是如果用户改变主意并再次打开第二个活动,它将被重新创建并且复选框将被取消选中。
我怎样才能避免这种情况?调用时是否可以保存复选框的状态finish()
?
我startActivityForResult
习惯从我的第一个活动切换到第二个活动。在第二个活动中,有多个复选框供用户选择。我从第二个活动中得到结果并调用finish()
.
但是如果用户改变主意并再次打开第二个活动,它将被重新创建并且复选框将被取消选中。
我怎样才能避免这种情况?调用时是否可以保存复选框的状态finish()
?
你打电话finish()
让系统杀死活动。不,您不能以这种方式保存状态。
我建议使用共享首选项 api 以键值对格式保存任何基本信息。
但是您应该阅读此https://developer.android.com/guide/topics/data/data-storage.html
或者这个https://developer.android.com/guide/topics/ui/settings.html
保存复选框的最佳方式是使用 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);