es gibt noch weitere Ansätze zur Lösung deines Problems:
- Führen Sie die SQL-Anweisung (ohne Einschränkung) am Anfang aus und gehen Sie zum nächsten Eintrag des Cursors, wenn eine Frage richtig beantwortet wurde
- die bereits beantworteten Fragen zwischenspeichern
Der zweite Ansatz könnte wie folgt erfolgen:
Ändern Sie zuerst Ihre Methode und SQL, einschließlich einer Where-Klausel:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
Puffern Sie zweitens die bereits beantworteten Fragen in Ihrer Spielklasse:
Fügen Sie Ihrer Spielklasse eine LinkedList hinzu
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
bereits beantwortete Fragen zur LinkedList hinzufügen:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
füge eine Funktion hinzu, die die Where-Klausel generiert:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}