【发布时间】:2012-11-03 05:31:42
【问题描述】:
我有一个测验应用程序,它在一个 sqlite 数据库中填充了大约 20 个不同类别的问题。我想在应用计费中实现,例如,如果有人购买 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 语句,仅当 sqlString[n] 不为空时才执行 SQL。
你们知道如何最好地设置它吗?
【问题讨论】:
标签: android sqlite in-app-billing