Сохранить виды и фрагменты в файл - PullRequest
0 голосов
/ 18 октября 2018

Мое приложение позволяет пользователю добавлять изображения и тексты для просмотра.Итак, теперь я хочу сохранить фрагменты, чтобы они позже могли внести в них изменения и доработать их.Однако я не могу найти способ сохранить список фрагментов.Я попытался:

ArrayList<FlashcardsTemplateActivity> FlashCards = new ArrayList<FlashcardsTemplateActivity>();
public void Save() {
    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(FlashCards);
        byte[] bytes = bos.toByteArray();
    } catch (IOException ex) {
        Log.d("Error! Failed!", "Save: Failed");
        Log.d("Error! Failed!", ex.getMessage());
        Log.d("Error! Failed!", ex.toString());

    }
}

Однако, это вызывает исключение java.io.NonSerializableException.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Это не так просто, как просто записать массив, содержащий некоторые представления, в поток.Сначала вам нужно будет преобразовать эти представления в любой формат, который вы предпочитаете, и который можно сохранить в файле.Варианты могут быть преобразовать их в JSON, XML или обычный текст - вы также можете создать необработанный двоичный вид представлений.При их чтении необходим анализатор, который анализирует объекты, воссоздает виды и добавляет их в макет.Если изображения содержат пользовательские растровые изображения, вам также придется хранить растровые изображения внутри этого файла.

0 голосов
/ 18 октября 2018

Вы не можете сделать это описанным способом.Вам нужны промежуточные объекты для сохранения и чтения из базы данных или другого персистентного слоя.Вот отправная точка для сохранения объектов в БД: Сохранение данных в локальной базе данных с использованием Room

...