2016-06-14 3 views
1

Итак, у меня есть простое приложение для Android, которое выглядит следующим образом: в нем есть список автопроизводителей, таких как Honda, Ford, Mazda и т. Д. Тогда, когда один из изготовителей Я должен показать свои модели автомобилей. Поэтому, если пользователь выбирает Honda, я бы отобразил «Civic, CRV, Odyssey» и т. Д. И когда пользователь выбирает конкретную модель, я бы отобразил другой список с дополнительной информацией. Итак, какая структура данных была бы простой и простой в применении в моем приложении для Android. Я думал об использовании вложенных ArrayLists. Кроме того, можете ли вы предоставить ссылку на пример о том, как сохранить данные с помощью студии android и получить данные, когда мне это нужно.Android: какая структура данных используется для сохранения данных приложения

Примечание: Список является динамическим, что означает, что у пользователя будет возможность добавлять или удалять любой элемент из любого из списков.

Спасибо :)

+0

Рассматривали ли вы простой SQLITE подход? Если да, то что с этим не так? –

+0

Кто-то рассказал мне об этом, но у меня нет опыта работы с SQL-материалами; поэтому мне сложно было заняться много времени и трудно учиться, поэтому мне было интересно, есть ли более простое решение. Если нет, тогда я рассмотрю sql. –

ответ

3

Это практически базы данных (конечно, я говорю о SQLite здесь). Я предполагаю, что у вас будет множество данных, которые в некотором роде взаимосвязаны.

Я не знаю, насколько хорошо вы знаете дизайн базы данных, но у вас должна быть таблица с именем Производитель, в котором будут храниться данные о них (подумайте о том, какие данные вы хотите сохранить и, следовательно, создайте соответствующие столбцы таблицы) и таблицу под названием CarModel, которая будет иметь внешний ключ, который соединяет его с производителем (так называемый manufacturer_id). Эти две таблицы должны иметь Многофункциональные отношения -> Каждый производитель может иметь Многие модели, но каждая модель может быть изготовлена ​​только Один производитель.

Это просто базовая идея, которую вы можете улучшить по своему вкусу, но это должно охватывать все, что вы просили очень легко. Например, чтобы получить список Производителей, вы просто Select * from Manufacturer. Когда вы нажимаете на конкретного производителя и хотите отображать его модели, вы просто напишите довольно простой запрос Select * from CarModel where manufacturer_id = id (id - это параметр, который вы передаете какой-либо функции, id производителя, в котором вы хотите использовать модели. Выбранные модели могут иметь произвольный объем данных, таких как дополнительная информация об этой модели.

Если вы не так хорошо с сырыми запросами, есть полезный query builder, которые могут сделать вашу жизнь намного проще.

+1

Хорошие предложения от @Vucko. JDXA ORM может упростить обработку отношений «один к одному» и «один ко многим» в объектной модели домена. http://softwaretree.com/v1/products/jdxa/mapping_one_2_many.html –

1

Я думаю, что большинство подходов к реализации данных в Android основан на SQLite. Если вы не имеете достаточного опыта работы с ним я настоятельно рекомендую изучить следующие учебные пособия с контент-провайдером:

Вы правы, что это очень много времени (даже для опытных разработчиков) только потому, что для этого подхода необходимо указать всю схему базы данных, используя простые строки. Но есть несколько ORM-решений, которые вы можете использовать, например, ORMLite, но он все еще требует задания для исследования.

В дополнение я бы рекомендовал Realm, что значительно проще в реализации, но, на мой взгляд, имеет много особенностей, которые следует учитывать (например, многопоточной работы)

Надежда, это поможет.

Смежные вопросы