Как представить настройки пользовательских приложений в Android

Я работаю над приложением для Android и не могу принять решение о сохранении данных приложения в архитектуре. Следующий случай:

В приложении у пользователя есть возможность создавать новые общие объекты и придавать им свойства, которые он хочет. Чтобы поддержать это, я хочу дать им список с фаворитами перед созданием формы ввода, например, автомобиля. У него есть цвет, вес, скорость, мощность и т. Д. Таким образом, пользователь может выбрать часто выбираемый объект (например, автомобиль) и получить соответствующие поля для формы, которую он должен заполнить (цвет, вес...). Этот список должен быть умным. Чем больше вы выбираете предмет, тем выше он появляется в списке. И эти пресеты должны быть редактируемыми в настройках.

И это главное. Должен ли я реализовать свою идею с помощью структуры предпочтений от Android (сохранить ее в XML как различные типы предпочтений и просто загрузить должное preferencebuilder) или я должен создать свои собственные объекты XML и сохранить его в собственном месте пользовательского файла?

Мой второй вопрос: если я использую метод Preference Framework.... это хорошо для динамического добавления записей во время выполнения? Ресурсы находятся в папке res, но что, если есть отдельные записи пользователя? Будут ли они также сохранены в папке программы или есть специальная папка пользовательских данных, в которой находятся файлы (возможно, зашифрованные)?

Спасибо

1 ответ

Хранить такие сложные данные в SharedPreferences сложно. Я имею в виду, что пользователь создал 4 объекта, каждый из которых имеет 8 свойств. Вы должны хранить 4*8 значений в sharedprefs и отображать их тоже.

Что можно сделать, это сохранить список массивов объектов, созданных пользователем. В соответствии с этим списком ведите список массивов счетчиков и меняйте местами оба списка, как пользователь нажимал на объект. пример:

List Name                List Counter
ObjA                        5
ObjB                        3
ObjC                        1
ObjD                        1

Храните эти два списка в общих настройках.

Теперь для части свойств объекта (возникает 2 возможности):

Поддерживайте базу данных MySQL и таблицу для имени каждого объекта. В нем можно хранить значения каждого столбца, ЕСЛИ вам нужно хранить каждый экземпляр, созданный объектом пользователем. (каждый раз, когда пользователь щелкает объект, просто показывают ему / ей имена столбцов таблицы и сохраняют введенные значения)

Пример:

ObjA Table :

Color   speed   horsepower   rpm
________________________________
red      20mph    100        3000
black    80mph    500        8000

Соответственно, если вы не хотите хранить каждое значение экземпляра, вы можете создать еще один sharedPrefs с объектом в качестве ключа и массивом свойств в качестве значения.

Другие вопросы по тегам