Java 交换活动失去功能

Java 交换活动失去功能,java,android,activity-lifecycle,Java,Android,Activity Lifecycle,我有一个由3个活动组成的应用程序 主要活动 计算器活性 信息活动 我的main活动有一个确认按钮,单击该按钮可启动calculator活动,所有操作都正确并按预期工作 CalculatorActivity有两个按钮,一个calculateButton用于检查某些内容并显示消息,另一个LearnMemorButton用于启动信息活动 当我在路上的时候 Calculator活动第一次一切正常。按learnMoreButton可将我导航到信息活动。该活动如下所示: 信息活动: goBackBut

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

  • 主要活动
  • 计算器活性
  • 信息活动
我的main活动有一个确认按钮,单击该按钮可启动calculator活动,所有操作都正确并按预期工作

CalculatorActivity有两个按钮,一个calculateButton用于检查某些内容并显示消息,另一个LearnMemorButton用于启动信息活动

当我在路上的时候 Calculator活动第一次一切正常。按learnMoreButton可将我导航到信息活动。该活动如下所示:

信息活动

 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);
}
一个返回按钮,让我返回到计算器活动。返回似乎破坏了功能。尽管布局在那里,一切看起来都像它应该的样子,但按下按钮(calculateButton,learnMoreButton)什么也做不了

计算器活动

创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u计算器);
最终按钮calculateButton=(按钮)findViewById(R.id.calculateId);
最终按钮learnmrubtton=(按钮)findViewById(R.id.learnmrubttonId);

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

这种方法
公共活动(){
最终意图intentObj=新意图(此信息为活动类);
星触觉(intentObj);
}

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

从我所做的一些搜索中,我发现我在如何管理活动生命周期方面做了一些错误,但我仍然找不到解决方案。开发文档对我没有多大帮助,一篇与我的问题类似的帖子已经过时了

我的问题是,如何从信息活动导航到计算器活动,这样当计算器活动返回与用户交互时,功能不会中断。应该调用onResume()哪个方法?,onRestart()?它应该是什么样子

谢谢任何愿意帮忙的人


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

与其每次都开始新活动,不如完成informationactivity

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

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

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

试试这个

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        InformationActivity.this.finish();
    }
 });
}
您可以直接完成活动,而不用说要返回到哪里,它会自动将您切换到上一个活动。

试试这个

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

您可以直接完成活动,而不必说要返回到哪里,它会自动将您切换到上一个活动。

您创建了太多这样来回移动的活动。您可以使用销毁活动和finish()或者您也可以使用onBackPressed()返回到以前的活动

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

你创造了太多这样来回移动的活动。您可以使用销毁活动和finish()或者您也可以使用onBackPressed()返回到以前的活动

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

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

Intent i = new Intent(this, InformationActivity.class);
startActivityForResult(i);
“后退”按钮添加以下代码:

goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        setResult(Result.OK);
        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();
    }
});

你们都在建议同一件事

信息\u活动。this.finish()

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


谢谢

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

信息\u活动。this.finish()

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


谢谢

如果每次按下按钮时都有明确的开始新活动的按钮,并且即使在返回流程时也不想使用“后退”按钮,那么您可能希望在开始新活动之前尝试完成活动。如果每次按下按钮时都有启动新活动的按钮,并且即使在返回流程时也不想使用“后退”按钮,则可以在调用startActivity(intentObj)后使用finish()来执行此操作。您可能希望在启动新活动之前尝试完成活动。您可以在调用startActivity(intentObj)后使用finish()来实现这一点。我认为这应该是分层的,所以您需要声明这些子活动是子活动,这样才能很好地工作。我认为这应该是分层的,所以您需要声明这些子活动是子活动,这样才能很好地工作。