我正在创建一个 Android 应用程序来跟踪食谱。我能够成功存储和检索食谱,但我的is_favorite
值无法正常工作。当我发送我的boolean
值(基于是否CheckBox
检查 a )时,它会正确发送到我的helper.insert
函数:
public Recipe insert(String name, boolean isFavorite, String servingSize, String time, String instructions)
{
ContentValues values = new ContentValues();
values.put("name", name);
values.put("is_favorite", (isFavorite) ? 1 : 0);
values.put("serving_size", servingSize);
values.put("time", time);
values.put("instructions", instructions);
long id = databaseHelper.getWritableDatabase().insert(DATABASE_TABLE, null, values);
}
当我查看时values
,如果为真,is_favorite
则为 1 isFavorite
,如果为假,则为 0 isFavorite
,这正是我想要的。
但是当我helper.getById(int id)
为我刚刚创建的配方做 a 时,它总是为该is_favorite
列返回 0,无论我实际输入什么值。我对此的查询非常标准:
SELECT _id, name, is_favorite, serving_size, time, instructions FROM recipes WHERE _id = ?
这是我的表创建脚本:
CREATE TABLE recipes (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, is_favorite INTEGER, serving_size TEXT, time TEXT, instructions TEXT);
任何建议将不胜感激。如果需要更多信息,请告诉我。
谢谢!
更新:感谢大家的回复!我仍然不完全确定问题出在哪里,但是在强制停止、清除所有数据并卸载应用程序然后重新安装后,它运行良好......