我有一个测验应用程序,它用大约 20 个不同类别的问题填充了一个 sqlite 数据库。我想在应用计费中实现,例如,如果有人购买 Category1,那么这些问题将被添加到数据库中,而不是其他问题。我的一些问题属于两类,所以让我们说 Category1 和 Category2。
try {
for (int n = 1; n < sqlString.length; n++) {
db.execSQL("INSERT INTO " + DATABASE_TABLE + " VALUES ("
+ sqlString[n] + ");");
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
这是我当前在 SQLite 类的 onCreate 方法中设置的。sqlString 是一个字符串数组,包含我到目前为止的所有 500 个问题。
我将存储一个类别是否已在另一个表中购买(但我愿意接受有关如何执行此操作的其他建议)。我计划创建一个类,该类读取该数据库,设置布尔值 true 或 false,无论是否已购买每个类别。所以
boolean cat1 = CheckIfCategoryHasBeenBought(category1)
等等,如果它已经被买了,我会实现一个方法,比如
boolean[] catChecker = {cat1, cat2, cat3, etc....}
SQLite info = new SQLite(this);
info.open();
info.addQs(catChecker)
//this will pass the true and false boolean values for each method then
//based on that I choose to implement or not
info.close();
但是我不知道这是否是一个好方法。我不确定如何检查该值是否已添加(因为它与已购买的另一个类别交叉)。我在想一个光标最好检查是否已经添加了值但是我如何让光标进行搜索?
我认为可以实现的方法是
1)我只使用与购买的问题相关的字符串创建一个字符串数组。2) 我在上面的 for 循环中创建一个 if 语句,用于检查字符串是否来自已购买的类别 3) 我将值“null”赋予所有尚未购买的字符串,然后添加一个 if 语句仅执行 SQL if sqlString[n] 不为空。
你们知道如何最好地设置它吗?