Где хранить значения, которые нужно вставить в SQLite при установке

Я новичок в SQLite, и вот история;

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

В методе onCreate() я должен создать db и вставить все вопросы, ответы и т.д. Поэтому я не уверен, куда помещать данные, которые будут вставлены в db, прежде чем вставлять их в таблицы db.

Я имею в виду;

values.put("key", "What is abc");
** insert
values.put("key", "What is def");
** insert
values.put("key", "What is ghi");
** insert
values.put("key", "What is xyz");
** insert
...

где я должен получить эти строки (что bla bla) для вставки в таблицу?

Если это было приложение Windows, я бы поместил их в.txt файл, прочитав оттуда и вставив строки.

В андроиде я не знаю.

Спасибо за любые предложения.

3 ответа

Я также не уверен, что это лучший способ хранения данных, в SQLite

Есть худшие варианты. :-)

В методе onCreate() я должен создать db и вставить все вопросы, ответы и т.д.

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


Один из способов сделать это:

  1. Храните данные в виде файла XML в папке res/raw.
  2. Создайте парсер. (DOM будет работать для небольшого файла. SAX будет лучше, если размер файла большой)
  3. Разбор данных в onCreate и вставка значений.

    Например: 'public void onCreate (SQLiteDatabase db) {ArrayList quizDataList;

    quizDataList = ParseQuizData.getQuizData(context);
     ContentValues values = new ContentValues();
     try {
     // Create Database
     db.execSQL(TABLE_CREATE);
     for (Iterator<quizdata> iterator = quizDataList.iterator(); iterator.hasNext();) {
     QuizData quizData = iterator.next();
     values.put(COLUMN1, quizData.getAttributeFirst());
     values.put(COLUMN2, quizData.getAttributeSecond());
    
     db.insertOrThrow(TABLE_NAME, null, values);
    
     }
    
     } catch (Exception e) {
     e.printStackTrace();
     }
    </quizdata>

    '


Вы можете использовать это для чтения текстового файла.

После этого в вашем методе SQLiteOpenHelper # onCreate() вы добавите свои значения по умолчанию.

licensed under cc by-sa 3.0 with attribution.