आपकी समस्या को हल करने के लिए और भी तरीके हैं:
- शुरुआत में sql-स्टेटमेंट (बिना सीमित) निष्पादित करें और जब किसी प्रश्न का सही उत्तर दिया जाए तो कर्सर की अगली प्रविष्टि पर जाएँ
- उन प्रश्नों को बफर करें जिनका उत्तर पहले ही दिया जा चुका है
दूसरा तरीका इस प्रकार किया जा सकता है:
सबसे पहले, जहां-क्लॉज सहित अपना तरीका और sql बदलें:
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>();
[...]
एक फ़ंक्शन जोड़ें जो कहां-क्लॉज उत्पन्न करता है:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}