Android — Сохранение состояния динамически измененного макета

#android #xml #layout #dynamic #save

#Android #xml #макет #динамический #Сохранить

Вопрос:

У меня есть макет, в котором пользователи могут добавлять кнопки и размещать их там, где они хотят. Я хочу разрешить пользователю сохранять свой макет, чтобы он загружался при следующем открытии приложения. Кто-нибудь знает, могу ли я сохранить файл на sdcard? В качестве альтернативы я мог бы использовать какой-нибудь метод layout.getXML() и поместить его в базу данных, используемую моим приложением. Заранее спасибо

Ответ №1:

При создании макета с помощью кода нет файла для сохранения. Вам нужно будет создать свой собственный формат файла, который можно было бы сохранить на SD-карте или вставить в базу данных.

Ответ №2:

Вы можете использовать метод savedInstaceState() с тем же типом объекта в качестве параметра . во время перезагрузки загружается пользовательский интерфейс, который вы хотите. В методе onCreate() задайте условие, является ли объект savedInstaceState obj нулевым или нет . если нет, то вызовите LoadUI().

Ответ №3:

На вашем месте я бы создал класс, содержащий всю информацию об этом макете и кнопках. И запишите всю информацию о классе в файл с помощью JsonWriter. Когда приложение открылось, я просто прочитал файл и воссоздал массивы, используя JSONObjects.