通过Android活动生命周期保存实例变量值

时间:2014-11-07 01:01:17

标签: android variables android-activity instance lifecycle

我使用intent来启动另一个活动以在ArrayList中显示数据。 按操作栏中的后退按钮后,数组列表的值将丢失。

我该如何解决这个问题?

我目前正在使用的代码:

@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);
}

第一种方法是我如何将我的arraylists放入Bundle,第二种方法是我如何恢复它。

1 个答案:

答案 0 :(得分: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);
 }
}