Как сохранить состояние при повороте экрана?
Простой вопрос, но мне как новичку разобраться сложно.
Есть текст 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);
}
