2011-10-03 101 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'覆蓋,所以你不需要將它存儲在類中。 –

相關問題