2014-11-07 70 views
-1

我使用意圖啓動另一個活動來顯示ArrayList中的數據。 按下操作欄中的後退按鈕後,數組列表的值將丟失。通過Android活動生命週期保存實例變量值

我該如何解決這個問題?

我目前使用的代碼:

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putStringArrayList(X_COORDINATE, dataX); 
    savedInstanceState.putStringArrayList(Y_COORDINATE, dataX); 
} 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    dataX=savedInstanceState.getStringArrayList(X_COORDINATE); 
    dataY=savedInstanceState.getStringArrayList(Y_COORDINATE); 
} 

第一種方法是我怎麼把我的ArrayList到捆綁,而第二種方法是我如何恢復它。

回答

2

試試這個:

protected void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putStringArrayList(X_COORDINATE, dataX); 
} 

And restore the values in onCreate(): 

public void onCreate(Bundle savedInstanceState) { 
    if (savedInstanceState!= null){ 
    dataX=savedInstanceState.getStringArrayList(X_COORDINATE); 
} 
}