Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

База вопросов в Андроид приложении

#android #java


Привет. Мне необходимо написать приложение, где будут задаваться вопросы с вариантами
ответов (тесты, короче говоря). Просто меня несколько озадачило, а где лучше хранить
варианты ответов и собственно сами вопросы? Создать файл, использовать SQLlite, или
даже в Strinq.xml (хотя кажется это самое не желательное).
Если использовать SQLlite, тогда скажите, пожалуйста, допустим, я сделаю db.execSQL(yourSql)
и заполню БД своими вопросами, а вот откуда я буду эти вопросы брать, чтобы в БД их
залить. Где их хранить изначально в таком случае. (Подключение к интернету не будет)
:) Возможен ли вариант, чтоб при скачавании приложения, скачивался дамп, если да, то
где об этом можно прочитать.
Посоветуйте, пожалуйста, исходя из вашего опыта.    


Ответы

Ответ 1



Я решал аналогичную ситуацию так: Кладем в res/xml некий XML файлик с вопросами При первом запуске парсим XML и складываем вопросики в SQLite Далее все время работаем с SQLite Есть конечно и другой вариант: создаем рученьками SQLite базу (благо клиентов в т.ч. гуйных много), кладем полученную базу в res/asset При первом запуске копируем БД из ассетов в место по умолчанию (то что возвращается Context.getDatabasePath() - что-то навроде /data/data/[мой пакет]/databases Далее все как обычно

Ответ 2



Предлагаю делать в базе. Нужны такие таблицы "вопросы" -id -текст вопроса -тип(один с многих, несколько с многих, да-нет) -подсказка "ответы" -id -id_вопроса -текст_ответа -правильный/неправильный По id вопроса можно выбрать одним запросом ответы к нему и отобразить. Можно создать ещё одну таблицу "темы" и в таблицу вопросов прописывать номер темы. Если бы это были билеты, то тема могла быть бы "номером билета" (подразумевается, что в билете несколько вопросов).

Ответ 3



Значится так: для хранения пользовательских настроек предпочтительно использовать встроенный механизм Setting-ов. А вот как раз SQLite и предназначен для хранения нужной для работы приложения. Заполняется база при первом запуске приложения вообще без проблем: нужно в классе-наследнике SQLiteOpenHelper в методе onCreate(SQLiteDatabase db) просто выполнить нужные SQL-инсерты через db.execSQL(yourSql) и все будет чотко.

Комментариев нет:

Отправить комментарий