在导航到另一个活动时,活动详细信息丢失。

3 浏览
0 Comments

在导航到另一个活动时,活动详细信息丢失。

当我从一个包含计算结果的活动中导航到其他活动,比如查看帮助活动中的图表时,如果我在操作栏中选择返回按钮,计算结果将被重置为空。\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)

0
0 Comments

(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的状态不会丢失。

0