在导航到另一个活动时,活动详细信息丢失。
在导航到另一个活动时,活动详细信息丢失。
当我从一个包含计算结果的活动中导航到其他活动,比如查看帮助活动中的图表时,如果我在操作栏中选择返回按钮,计算结果将被重置为空。\n我知道肯定有一种方法可以将活动的状态设置为“暂停”,而不是在导航离开时停止它。\n有人知道我应该如何在代码中实现这一点吗?有没有一种方式可以使活动在用户离开时不被销毁?而且,如果我设置了这个,计算结果会固定在该活动中,还是在重新计算时会刷新?\n操作栏返回按钮的代码如下:\n
final Button actionBarHome = (Button)actionBarLayout.findViewById(R.id.action_bar_title); actionBarHome.setBackgroundResource(R.drawable.ic_action_back); actionBarHome.setOnClickListener(this); actionBarHome.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(intent2); } });
\n[显示计算结果的图片](https://i.stack.imgur.com/ugd1G.png)\n[导航离开并点击返回按钮的图片](https://i.stack.imgur.com/suI3j.png)\n[结果被清除的图片](https://i.stack.imgur.com/cnVHj.png)
(Activity details lost when navigating to another activity)这个问题的出现的原因是因为在切换到另一个activity时,当前activity的状态没有被正确保存和恢复。解决方法是在当前activity的onSaveInstanceState方法中将数据保存到Bundle对象中,在onCreate方法中将保存的数据恢复到视图中。
具体的解决方法如下:
1. 在onSaveInstanceState方法中使用putDouble方法将需要保存的数据放入Bundle对象中。例如:
static final String OFFSET_LENGTH = "offsetlength"; public void onSaveInstanceState(Bundle savedInstanceState) { // 保存当前的状态 savedInstanceState.putDouble(OFFSET_LENGTH, mark1); super.onSaveInstanceState(savedInstanceState); }
2. 在onCreate方法中判断savedInstanceState是否为null,如果不为null,则从savedInstanceState中恢复之前保存的数据。例如:
if (savedInstanceState != null) { // 从保存的状态中恢复数据 mark1 = savedInstanceState.getDouble(OFFSET_LENGTH); }
以上是解决该问题的方法,但是在实际操作中,可能会遇到一些问题。例如,当使用putDouble保存数据时,可能会遇到变量mark1无法识别的问题。此时,可以尝试将putDouble改为putInt,并将getInt改为getDouble。如果问题仍然存在,建议另外提出一个问题寻求帮助。
总结起来,解决(Activity details lost when navigating to another activity)问题的方法是在activity的onSaveInstanceState方法中保存数据,在onCreate方法中恢复数据。这样可以确保在切换到另一个activity并返回时,当前activity的状态不会丢失。