2014-11-07 49 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); 
} 
}