Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TextView contents is lost after changing screen orientation

Observing my application behavior in Android emulator, I see that EditText contents is preserved after changing screen orientation (Ctrl+F11). But TextView contents is reset to its initial value and doesn't keep latest information set by the program. Is this behavior by definition? What can I do to keep this contents?

like image 655
Alex F Avatar asked Oct 10 '12 14:10

Alex F


1 Answers

You can use the savedInstanceBundle to keep hold of the data by overriding two methods inside your activity, similar to below:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save state to the savedInstanceState
  savedInstanceState.putString("MyString", textview.getText());

}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore state from savedInstanceState
  String myString = savedInstanceState.getString("MyString");
  textview.setText(myString);
}

Add your items to the Bundle in onSaveInstanceState, and read them back in during onRestoreInstanceState. This works in a similar way to passing values through intents when creating activities.

like image 168
biddulph.r Avatar answered Nov 07 '22 05:11

biddulph.r