使用SqliteAssetHelper的Android-Quiz App

时间:2015-12-07 19:32:04

标签: java android database sqlite android-sqlite

我已经开始为Android开发一个测验应用程序(多项和单项选择)。 我选择SqliteAssetHelper库的原因是,我想要一个预先填充的数据库。 我创建了一个带有2个表的问题数据库(问题和答案)。

question & answer table

在我的数据库类中使用以下方法我得到了问题项:

public Cursor getQuestionItems() {
    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
    qb.setTables(TABLES.QUESTION);
    Cursor questionCursor = qb.query(db, null, null, null, null, null, null);
    return questionCursor;
}

在主类中(在onCreate中)我正在创建问题对象并将它们添加到arraylist中:

    Cursor questionCursor = db.getQuestionItems();
    while (questionCursor.moveToNext()) {
        Question question = new Question();
        question.setId(
                questionCursor.getString(questionCursor.getColumnIndexOrThrow(MyDatabase.QuestionColumns.ID)));
        question.setQuestiontext(questionCursor
                .getString(questionCursor.getColumnIndexOrThrow(MyDatabase.QuestionColumns.QUESTIONTEXT)));
        question.setQuestiontype(questionCursor
                .getInt(questionCursor.getColumnIndexOrThrow(MyDatabase.QuestionColumns.QUESTIONTYPE)));

        questionList.add(question);
    }

    questionCursor.close();

我也在为答案项目做同样的事情。现在我想显示一个带有问题的视图和可能的答案(例如4个答案)。如果用户点击“下一步”按钮,则应显示带有答案的下一个问题。

如何有效地实现这一目标?是否有必要创建问题和答案项目?我不确定这是不是正确的方法。

提前致谢!

1 个答案:

答案 0 :(得分:0)

要遵循数据库规则,我们应该这样做。一个问题表,一个表根据您提供的结构找到答案。它是更好的方法,因为您将遵循数据库规则,并且不会有还原数据。但是在显示答案时,请显示正确问题ID的数据。