Сохранение объектов в onSaveInstanceState()

Я видел несколько подобных вопросов о сохранении объектов с помощью Parceable (см. здесь). Но я хочу сохранить массив объекта, для которого я не могу реализовать Parceable, потому что это предопределенный объект, который мы получаем в Android (кнопка, цвет и т. д.). Как мне сохранить массив этих объектов? Мне очень жаль, если я просто что-то упустил.

Спасибо,

Пи-нет


person Pi Net    schedule 30.12.2018    source источник
comment
Вы правы в том, что вы не можете сохранять такие классы, как Button, потому что вы не контролируете исходный код и, следовательно, не можете реализовать Parcelable. Альтернативой может быть сохранение базовых данных, которые изначально использовались для создания ваших Button, чтобы вы могли реконструировать кнопки при восстановлении состояния.   -  person stkent    schedule 30.12.2018


Ответы (1)


Для непарцелируемых данных вы можете переопределить onRetainNonConfigurationInstance(). Оттуда вы можете вернуть любой объект, который вам нравится, и этот объект не обязательно должен быть разделен. Затем из вашего нового экземпляра действия вы можете использовать getLastNonConfigurationInstance(), чтобы получить доступ к объекту, который вы сохранили ранее.

https://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance()

person Greg Moens    schedule 30.12.2018