istnieje więcej sposobów rozwiązania Twojego problemu:
- wykonaj instrukcję sql (bez ograniczeń) na początku i przejdź do następnego wpisu kursora, gdy odpowiedź na pytanie jest prawidłowa
- buforuj pytania, na które już udzielono odpowiedzi
drugie podejście można wykonać w następujący sposób:
najpierw zmień metodę i sql, w tym klauzulę where:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
po drugie, zbuforuj pytania, na które już udzielono odpowiedzi w swojej klasie gry:
dodaj LinkedList do swojej klasy gry
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
dodaj pytania, na które już udzielono odpowiedzi, do LinkedList:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
dodaj funkcję, która generuje klauzulę where:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}