#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) и все будет чотко.
Комментариев нет:
Отправить комментарий