切换活动将失去功能



>我有一个由 3 个活动组成的应用程序

  • 主活动
  • 计算器活动
  • 信息活动

我的活动有一个确认按钮,点击启动计算器活动,一切都正确完成并按预期工作。

CalculatorActivity 有 2 个按钮,一个是检查某些内容并显示消息的 calculateButton 和一个启动 InformationActivity 的 learnMore按钮。

当我在计算器第一次活动一切都很好,可以正常工作。按下学习更多按钮将我导航到信息活动。该活动如下所示:

信息活动

 goBackButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switchActivity();
        }
    });
}
public void switchActivity(){
    final Intent intentObj = new Intent(this,CalculatorActivity.class);
    startActivity(intentObj);
}

一个goBack按钮,让我回到计算器活动。返回似乎会破坏功能。尽管布局在那里并且一切看起来都像它应该的那样,但按下按钮(计算按钮,学习更多按钮)什么也不做。

计算器活动

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); final Button calculateButton = (Button) findViewById(R.id.calculateId); final Button learnMoreButton = (Button) findViewById(R.id.learnMoreButtonId);

还有一些TextView和EditText没有显示在这里,但你明白了。还有一些方法可以进行计算,getters和setter。

此方法 public void switchActivity(){ final Intent intentObj = new Intent(this,Information_activity.class); startActivity(intentObj); }

但是我没有使用 onResume() 、onPause() 或生命周期中除 onCreate() 之外的任何方法。

从我所做的一些搜索中,我发现我在管理活动生命周期的方式上做错了,但我仍然找不到解决方案。开发文档对我没有太大帮助,而且与我的问题相同的帖子很旧。

我的问题是,应该如何完成从InformationActivity到CalculatorActivity的导航,以便当CalculatorActivity回来与用户交互时,功能不会中断。应该在 Resume() 上调用哪个方法?, onRestart()?它应该是什么样子的?

感谢任何愿意帮助的人。

PS:正如我所提到的,我已经阅读了活动生命周期的文档,但我还没有找到解决方案。

而不是每次都开始新活动,而是完成信息活动。

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

}

您正在创建太多以这种方式来回移动的活动。 您可以使用 finish() 销毁活动;也可以使用 onBackPressed() 返回以前的活动;

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});

试试这个

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        InformationActivity.this.finish();
    }
 });
}

您无需说要返回哪里,只需完成活动,它就会自动将您切换到上一个活动。

我认为您的活动是分层的,因此您应该能够从主要计算器活动中执行以下操作:

Intent i = new Intent(this, InformationActivity.class);
startActivityForResult(i);

您的后退按钮添加以下代码:

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        setResult(Result.OK);
        finish();
    }
});

你们都在建议同样的事情。添加

Information_Activity.this.finish()

修复了损坏的功能,虽然你们都是对的,但我只能选择一个答案。

谢谢

最新更新