existuje více přístupů k vyřešení vašeho problému:
- proveďte příkaz sql (bez omezení) na začátku a přejděte na další položku kurzoru, když je otázka zodpovězena správně
- uložte do vyrovnávací paměti otázky, které již byly zodpovězeny
druhý přístup lze provést následovně:
nejprve změňte svou metodu a sql, včetně klauzule where:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
za druhé, uložte do paměti již zodpovězené otázky ve vaší herní třídě:
přidejte LinkedList do své herní třídy
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
přidat již zodpovězené otázky do LinkedList:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
přidejte funkci, která generuje klauzuli where:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}