Я пытаюсь использовать 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);
Когда код работает, selectedRecipes SQL будет выглядеть примерно так:
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);
Я бы, наверное, используйте a для l oop, чтобы сгенерировать правильное количество WHERE "_id =?" а затем используйте массив строк:
selectedRecipesSQL = new String[]{"2", "5"};