Turn, Turn, Turn
Step #2: Pour the Form Into the Bundle...........................................
Now, fill in the details of onSaveInstanceState(), putting our widget
contents into the supplied Bundle:
@Override
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putString("name", name.getText().toString());
state.putString("address", address.getText().toString());
state.putString("notes", notes.getText().toString());
state.putInt("type", types.getCheckedRadioButtonId());
}
Step #3: Repopulate the Form...........................................................
Next, we need to make use of that saved state. We could do this in
onCreate(), if the passed-in Bundle is non-null. However, it is usually easier
just to override onRestoreInstanceState(). This is called only when there is
state to restore, supplying the Bundle with your state. So, add an
implementation of onRestoreInstanceState() to DetailForm:
@Override
public void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
name.setText(state.getString("name"));
address.setText(state.getString("address"));
notes.setText(state.getString("notes"));
types.check(state.getInt("type"));
}
At this point, you can recompile and reinstall the application. Use
making changes (but not saving) on the DetailForm, you will see those
changes survive the rotation.
Step #4: Fix Up the Landscape Detail Form.....................................
As you tested the work from the previous section, you no doubt noticed
that the DetailForm layout is not well-suited for landscape – the notes text