2011-10-03 124 views
1

我切换到下一个屏幕,然后回到原来的位置,想要拿起我离开的位置,保存并恢复数据。在活动1:我有超过10个按钮,我可以选择和取消选择按钮,如果转到下一个屏幕如果我回来它不应该重新加载,它应该告诉我在哪里我leftoff,如何重新加载活动而不刷新?

up1 = (Button) findViewById(R.id.adultup1); 
    up1.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 
      if (upt1 == 0) { 
       up1.setBackgroundResource(R.drawable.adultup1); 
       upt1 = 1; 
      } else { 
       up1.setBackgroundResource(R.drawable.adultup1_pressed); 
       upt1 = 0; 
      } 
     } 
    }); 

回答

3

看图像(和阅读文字太)位置:http://developer.android.com/reference/android/app/Activity.html

如果需要不会重新加载状态,你应该考虑在每个活动状态下你在做什么。

如果你这样做:

活性1 - > startActivity(活性2) - >活性2 - > Activity2.onBackPressed - >活动1

比,没有重装。从第二次回第一你被称为onResume

,但如果你这样做:

活性1 - > startActivity(活性2) - >活性2 - > startActivity(活性1) - >活性1

那么您需要将状态保存在某个外部类(静态类成员)中,并以onCreate状态从它加载Activity1状态。
同样的情况是(如图所示),应用程序进程被终止,用户返回中断的活动。

如果你只是对活性2使用finish()返回活动1,那里将是onCreate没有呼叫,只需onResume

enter image description here


存储按钮状态

public static int _state = -1; 

onCreate(Bundle savedInstanceState){ 
    if(_state == -1){ 
     _state = 0; 
     // this is first time we're using "_state" variable, so do init 
    } else { 
     // this is second or later, so just load state variable and setup UI 
    } 
} 
+0

样本的代码是什么?我认为,您需要了解如何处理每个确切活动案例中的活动生命周期 –

+0

Activity1 - > startActivity(Activity2) - > Activity2 - > Activity2.onBackPressed - > Activity1.here如何将状态存储在静态类 – user828948

+0

中再次阅读,在这种情况下,状态被保存,不会被'onCreate'覆盖,所以你不需要将它存储在类中。 –