има още подходи за решаване на проблема ви:
- изпълнете sql-изявлението (без ограничение) в началото и преминете към следващия запис на курсора, когато на въпрос е отговорено правилно.
- буферирайте въпросите, на които вече сте получили отговор
вторият подход може да бъде направен по следния начин:
първо променете своя метод и sql, включително клауза where:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
второ, буферирайте вече отговорените въпроси във вашия клас игра:
добавете LinkedList към вашия игров клас
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
добавете вече отговорени въпроси към LinkedList:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
добавете функция, която генерира клаузата where:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}