2013-12-18 60 views
0

当我从具有计算结果的活动离开时(例如,检查帮助活动中的图表并选择操作栏中的后退按钮),计算已重置为空。导航到其他活动时活动详细信息丢失

我知道必须有某种方式将活动的状态设置为pause,而不是在我离开时停止。

有谁知道我会如何实现这个代码?有没有办法设置活动,以便它不会在用户离开时破坏?另外,如果我要设置它,那么计算是否固定在该活动上,或者当我重新计算时它会刷新?

的操作栏后退按钮的代码是这样的:

 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); 

      } 

     }); 

Calculated resut!

Navigated away and clicked back button

Results cleared

+0

尝试搞乱捆绑? – Skynet

+0

我对捆绑状态不太熟悉,我刚开始从Java开发Android。 –

+0

现在是时候学习:http://developer.android.com/reference/android/os/Bundle.html http://stackoverflow.com/questions/4999991/what-is-the-importance-of -bundle-a-android-program http://stackoverflow.com/questions/14876273/simple-example-for-intent-and-bundle – Skynet

回答

3

的活动周期是从你的手真。你应该自己处理恢复你的活动。将数据放入onSaveInstanceState包中,并使用onCreate中的savedInstanceState包重新填充视图。

你可以参考这篇文章Recreating an Activity

+0

所以我在这种情况下想的是: –

+0

'static final String OFFSET_LENGTH =“offsetlength”; public void onSaveInstanceState(Bundle savedInstanceState){ //保存用户当前的游戏状态 savedInstanceState.putdouble(OFFSET_LENGTH,mark1); super.onSaveInstanceState(savedInstanceState); ' –

+0

然后当我在onCreate中加载像这样的活动时调用数据? if(savedInstanceState!= null){ //从已保存状态恢复成员的值 marl1 = savedInstanceState.getInt(OFFSET_LENGTH);' –

相关问题