0

startActivityForResult习惯从我的第一个活动切换到第二个活动。在第二个活动中,有多个复选框供用户选择。我从第二个活动中得到结果并调用finish().

但是如果用户改变主意并再次打开第二个活动,它将被重新创建并且复选框将被取消选中。

我怎样才能避免这种情况?调用时是否可以保存复选框的状态finish()

4

2 回答 2

0

你打电话finish()让系统杀死活动。不,您不能以这种方式保存状态。

我建议使用共享首选项 api 以键值对格式保存任何基本信息。

但是您应该阅读此https://developer.android.com/guide/topics/data/data-storage.html

或者这个https://developer.android.com/guide/topics/ui/settings.html

于 2016-09-04T11:42:29.727 回答
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);
于 2016-09-06T12:37:00.770 回答