ada lebih banyak pendekatan untuk menyelesaikan masalah Anda:
- jalankan pernyataan sql (tanpa batasan) di awal dan pindah ke entri kursor berikutnya ketika pertanyaan dijawab dengan benar
- menyangga pertanyaan yang sudah dijawab
pendekatan kedua dapat dilakukan sebagai berikut:
pertama, ubah metode dan sql Anda, termasuk klausa where:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
kedua, buffer pertanyaan yang sudah dijawab di kelas game Anda:
tambahkan LinkedList ke kelas game Anda
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
tambahkan pertanyaan yang sudah dijawab ke LinkedList:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
tambahkan fungsi yang menghasilkan klausa where:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}