Как создать фрагмент с помощью действия при возобновлении работы приложения или перезагрузить объект в память?

1

Исключение Java: http://hastebin.com/yiwecefifi.avrasm

У меня есть объект, который я называю Category, для которого должен иметь доступ мой фрагмент (A CategoryFragment [extension ListFragment]), чтобы заполнить ListView контентом.

Обычно это прекрасно работает. Приложение запускается, категории создаются и отображаются списки (поскольку у меня есть несколько из них в ViewPager).

Однако, нажав "Домой" и немного удержавшись, повторное внесение в приложение приведет к сбою. Прежде чем я создам конструктор с параметром, он даст мне исключение NullPointerException для этой категории. С тех пор я решил дать ему конструктор с объектом категории, и теперь он терпит неудачу таким образом.

Итак, мой вопрос - одна из двух вещей:

  1. Как я могу заставить экземпляр фрагмента выполнить свою деятельность? или
  2. Как заставить Android сохранить свой объект? Я предполагаю, что он должен быть сериализуемым, но как его сохранить, когда фрагмент создан снова?

Данные манифеста для этого действия приведены ниже:

<activity
    android:launchMode="singleInstance"
    android:name=".NewsActivity"
    android:configChanges="orientation|keyboardHidden|screenSize|screenLayout|uiMode"
    android:label="@string/shortcut_name"
    android:theme="@style/Theme.BgsuNews" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Теги:
android-fragments
android-activity

1 ответ

1
Лучший ответ

Эта ссылка в документах о сохранении состояния активности должна быть полезна. Фрагменты также имеют функции onSave/RestoreInstanceState() такие как действия. Вам нужно будет решить, какой класс вашего объект Категории принадлежит (Активности или фрагмент), а также сохранять и восстанавливать данные с помощью Категории Bundle передается вам в onSave/RestoreInstanceState() функциях этого класса.

Для другого способа хранения незавершенного производства существует такой подход, который может быть полезен или не может быть полезен в вашем случае. (Это то, что я делаю везде, где возможно, и onSaveInstanceState() хорошо работает для всего остального.)

  • 0
    Спасибо. Я почти уверен, что это то, что я пытался выяснить, и я отмечу вас как ответ, как только я подтверждаю. : 3 Иногда просто сложно найти именно то, что вы ищете, например, искать определенный цвет lego в ведре.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню