2011-11-04 29 views
0

活動之間的轉換我的工作在Android的一個選項卡式應用程序。在第一個選項卡我已經與textviews,紡紗搜索引擎..如果我填這些PARAMS和切換到其他標籤或搜索結果中活動,我返回到該選項卡(搜索引擎選項卡),我發現所有這些字段被重新初始化。但我要保持自己的價值,以記住我搜索.. 有沒有辦法讓我的數據時,我的活動之間切換?保存視圖值,而在Android的

感謝您的幫助。

回答

1

您可以覆蓋的onSaveInstanceState(將你變換之前調用一個新的活動)和onRestoreInstanceState(恢復您的活動之前,將被稱爲)如:

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Save UI state changes to the savedInstanceState. 
    // This bundle will be passed to onCreate if the process is 
    // killed and restarted. 
    savedInstanceState.putBoolean("MyBoolean", true); 
    savedInstanceState.putDouble("myDouble", 1.9); 
    savedInstanceState.putInt("MyInt", 1); 
    savedInstanceState.putString("MyString", "Welcome back to Android"); 
    // etc. 
    super.onSaveInstanceState(savedInstanceState); 
} 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); 
    double myDouble = savedInstanceState.getDouble("myDouble"); 
    int myInt = savedInstanceState.getInt("MyInt"); 
    String myString = savedInstanceState.getString("MyString"); 
} 
0

我猜你創建的意圖對象與addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)來啓動你的選項卡的活動。如果你做了這樣的事情,只要刪除這個函數。例如,創建目標對象像下面,

Intent intent = new Intent(this, tabActivity.class); 

不喜歡這樣,

Intent intent = new Intent(this, tabActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

如果你這樣做,你會得到一個選項卡的確切狀態爲u切換到另一個選項卡前離開它。