Как сохранить состояние при повороте экрана?

Простой вопрос, но мне как новичку разобраться сложно. Есть текст TextView вложенный в ScrollView. Как при повороте экрана сохранить то место, где остановился читать? По учебнику нужно использовать: onRestoreInstanceState и onSaveInstanceState. Но я не пойму, что нужно прописывать в этих методах.

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".old_unused.ActivityBox_1">

<LinearLayout
    android:orientation="vertical"
    style="@style/RelativeBox">

    <TextView
        android:id="@+id/Ranishni"
        android:text="@string/This_1"
        style="@style/Size.text">
    </TextView>

</LinearLayout>

введите сюда описание изображения

Код ошибки

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getTop()' on a null object reference
    at ua.pl.prayerbook.ActivityBox.onSaveInstanceState(ActivityBox.java:93)

Ответы (1 шт):

Автор решения: Olmicron

Используйте SaveInstanceState для сохранения состояния.

ScrollView scroll

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    // Тут сохраняем в outState позицию скролла
    outState.putInt("scroll",scroll.getTop());
}

protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // А тут восстанавливаем позицию скролла
    scroll.setTop(savedInstanceState.getInt("scroll",0);
}
→ Ссылка