我目前正在使用 eclipse 开发一个 android 应用程序。更新数据库时遇到问题。问题是调用 updateFlag 方法时应用程序崩溃。updateFlag 方法仅根据 rowId 更新一个特定的列。
这是我在 SQLiteAdapter 类中的数据库结构:
public long insert(String answer, String question, String hint, String flag, String level){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_ANSWER, answer);
contentValues.put(KEY_QUESTION, question);
contentValues.put(KEY_HINT, hint);
contentValues.put(KEY_FLAG, flag);
contentValues.put(KEY_LEVEL, level);
return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
这是 SQLiteAdapter 类中的更新方法:
public void updateFlag(long rowId)
{
ContentValues args = new ContentValues();
args.put(KEY_FLAG, "1");
sqLiteDatabase.update(MYDATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null);
}
这就是我在另一个类中调用 updateFlag 方法的方式:
mySQLiteAdapterListener2 = new SQLiteAdapter(this);
mySQLiteAdapterListener2.openToWrite();
long idListener = Long.parseLong(getId);
mySQLiteAdapterListener2.updateFlag(idListener);
mySQLiteAdapterListener2.close();
我的代码有什么问题?任何人都知道如何以正确的方式根据 rowId 更新一个特定的列?