【发布时间】:2021-12-04 18:00:20
【问题描述】:
我正在尝试保存复选框的状态,并在选中的情况下设置为 true,反之亦然。我在 sqlite 中设置了一个方法,但仍然无法存储布尔值。我知道它以 1 或 0 的形式存储,但仍然无法这样做。当我存储一个 int 时,它给出了一个错误
private static final int STATUS = 0;
private static final String CHECKBOX_POS = "checkbox_pos";
@Override
public void onCreate(SQLiteDatabase db) {
String create_table = "CREATE TABLE " + TABLE_NAME + "( "
+ "ID INTEGER PRIMARY KEY ,"
+ STATUS + " INTEGER NOT NULL, "
+ CHECKBOX_POS + " TEXT NOT NULL, "
)";
db.execSQL(create_table);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + STATUS +
" INTEGER ");
}
public boolean insertPos(String position,
int checkbox_status){
SQLiteDatabase database = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(CHECKBOX_POS,position);
contentValues.put(STATUS,checkbox_status);
long result = database.insert(TABLE_NAME,null,contentValues);
if (result == -1){
return false;
} else {
return true;
}
}
这会在onCreate 和<column definition name> expected, got '0' 中给出错误<column definition name> or <table constraint> expected, got '0'
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + STATUS + " INTEGER ");
我需要通过以下方式使用它
if (isChecked){
boolean success = db.insertPos(
String.valueOf(checkbox_pos),
// the boolean value to be inserted);
}
【问题讨论】:
标签: java android sqlite android-sqlite