2016-04-21 66 views
0

我有一个由3个活动的应用程序交换活动失去功能

  • MainActivity
  • CalculatorActivity
  • InformationActivity

MainActivity具有的onClick启动确认按钮计算器活动和一切都做得很对,并按照打算工作编辑。

CalculatorActivity具有2个按钮,即检查和的东西示出了消息的一个calculateButton和启动该InformationActivity一个learnMorebutton。

当我在 CalculatorActivity首次一切都很好,working.Pressing的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按钮让我回到计算器活动。继续后退似乎打破了功能。尽管布局在那里,并且看起来应该是一切,但按下按钮(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上是不显示在这里,但你的point.Some的方法去做计算,getter和setter。

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

但我不使用的onResume()的onPause()或从的onCreate()开生命周期的任何方法。

从我已经完成的一些搜索中,我发现我在如何管理活动生命周期方面做了一些错误,但仍然找不到解决方案。开发文档并没有对我有太大的帮助,有点像我的老人一样的问题。

我的问题是,如何从InformationActivityCalculatorActivity导航应该做的,所以当CalculatorActivity回来与user.Which方法交互应该叫的onResume功能不破( )? ,onRestart()?它应该是什么样子?

感谢任何愿意帮助的人。

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

+1

如果明确有开始新的活动,他们每按一次按钮,你不想使用即使要回去,你可能会想尝试开始新的前完成你的活动流中的后退按钮一个。你可以在调用startActivity(intentObj) –

回答

1

尝试了这一点

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

不要说去哪里回来,你可以完成的活动,它会自动切换到上一个一个的。

2

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

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

}

2

您正在创造太多活动来回移动。你可以使用finish()来销毁活动;或者您也可以使用onBackPressed()返回上一个活动;

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

后使用finish()来做到这一点,我认为这应该是分层的,所以你需要声明这些子活动是子活动,以便很好地工作。 – jobbert

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(); 
    } 
}); 
0

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

Information_Activity.this.finish()

修复了损坏的功能,尽管你们都是正确的,我只能选择一个答案。

感谢