【发布时间】:2020-06-17 14:13:52
【问题描述】:
我正在尝试使用 rawQuery 返回一个游标,其中包含要传递给它的几行不同的数据。当只有 1 个参数时,它有效。当有超过 1 个参数时,它显示空 ListView 状态。我相信问题出在这里:
// Query for items from the database and get a cursor back. Edited code for clarity:
recipeCursor = db.rawQuery("SELECT course, name, _id " +
" FROM recipes WHERE _id = ?",
selectedRecipesSQL);
当代码运行时,selectedRecipesSQL 看起来像:
String[] selectedRecipesSQL;
selectedRecipesSQL = new String[]{"2"};
当它不起作用时,它会像
String[] selectedRecipesSQL;
selectedRecipesSQL = new String[]{"2 OR 5"};
所以,明确地说,我可以在我的 ListView 中显示表格的一行,但如果我尝试显示多行表格,那么它不会显示任何内容。
我想到的一个丑陋的解决方案(但我没有追求)是我需要编辑 rawQuery 选择语句以读取如下内容:
recipeCursor = db.rawQuery("SELECT course, name, _id " +
" FROM recipes WHERE _id = ? OR _id = ? OR _id = ?",
selectedRecipesSQL);
我可能会使用 for 循环来生成正确数量的 WHERE "_id = ?"然后使用字符串数组:
selectedRecipesSQL = new String[]{"2", "5"};
【问题讨论】: