我正在开发一个应用程序,其中我将覆盖后退按钮。我创建了一个复选框。单击后我调用意图:
startActivityforResult();
并且还保持活动状态为:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("checkbox", checkbox.isChecked());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
checkbox_state = savedInstanceState.getBoolean("checkbox");
}
运行良好并且状态得以维持。
意味着我正在编辑文本中输入值。并在复选框上单击调用新活动以获取结果,并在返回第一个活动时保持状态。
现在,但是从第二个活动开始,如果我单击设备后退按钮,则状态不会保持。
那么我应该怎么做才能保持后退按钮的状态。我搜索但没有找到满意的解决方案。请建议我。
当您启动新活动时,当前活动将被隐藏,新活动将被放置在堆栈顶部。现在,如果您按新 Activity 上的后退按钮,那么第一个 Activity 应该以当前状态出现(如果它没有被销毁,则调用 finish()),即如果选中了复选框,那么它应该保持不变检查过。除非方向更改或活动被销毁,否则不需要保存活动状态。
您确定您没有在 onActivityResult 或 onResume() 方法中执行任何影响复选框状态的操作吗?我建议首先注释掉这两种方法中的所有代码,然后查看您的复选框是否保留状态。另外,您还可以确保代码本身在启动新活动之前不会取消选中该复选框吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)