deepmindz
deepmindz

Reputation: 608

Save Instance Variable values through Android Activity Life Cycle

I use an intent to start another activity to display data in an ArrayList. After pressing the back button in the action bar, the values of the array list are lost.

How do I fix this?

The code I'm currently using:

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

The first method is how I put my arraylists in to the Bundle, and the second method is how I restore it.

Upvotes: 0

Views: 2377

Answers (1)

Nodlee
Nodlee

Reputation: 69

try this:

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

Upvotes: 2

Related Questions