切换活动失去功能

时间:2016-04-21 11:56:30

标签: java android activity-lifecycle

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

  • MainActivity
  • CalculatorActivity
  • InformationActivity

我的 MainActivity 有一个确认按钮,onClick启动 CalculatorActivity ,一切都正确完成并按预期工作。

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

当我在 CalculatorActivity 第一次一切正常并且正常工作。按下learnMoreButton导航我到 InformationActivity 。该活动如下所示:

InformationActivity

 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按钮,让我回到 CalculatorActivity 。回来似乎打破了功能。虽然布局在那里,一切看起来应该是,按下按钮(calculateButton,learnMoreButton)什么都没有。

CalculatorActivity

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没有显示在这里,但你明白了。还有一些方法可以做计算,getter和setter。

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

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

从我做过的一些搜索中我发现我在管理活动生命周期方面做错了但是我仍然无法找到解决方案。开发文档对我帮助不大和我有同样问题的帖子已经过时了。

我的问题是,应该如何完成从 InformationActivity CalculatorActivity 的导航,因此当 CalculatorActivity 时功能不会中断回来与用户交互。应该将哪种方法称为 onResume()? , onRestart()?它应该怎么样?

感谢愿意提供帮助的任何人。

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

5 个答案:

答案 0 :(得分:2)

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

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

}

答案 1 :(得分:2)

你正在创造太多以这种方式来回移动的活动。您可以使用完成(); 来销毁活动,也可以使用 onBackPressed();

返回上一个活动
goBackButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});

答案 2 :(得分:1)

试试这个

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

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

答案 3 :(得分:1)

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

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

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

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

答案 4 :(得分:0)

你们都在暗示同样的事情。添加

Information_Activity.this.finish()

修复了破碎的功能,虽然你都是正确的我只能选择一个答案。

由于