Как представить настройки пользовательских приложений в 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 с объектом в качестве ключа и массивом свойств в качестве значения.