có nhiều cách tiếp cận hơn để giải quyết vấn đề của bạn:
- thực hiện câu lệnh sql (không giới hạn) ở đầu và chuyển đến mục nhập tiếp theo của con trỏ khi câu lệnh được trả lời đúng
- điền vào các câu hỏi đã được trả lời ở đâu
cách tiếp cận thứ hai có thể được thực hiện như sau:
trước tiên, hãy thay đổi phương thức và sql của bạn, bao gồm mệnh đề where:
public Cursor getTestData(String whereClause)
{;
try
{
String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
[...]
thứ hai, đệm các câu hỏi đã được trả lời trong lớp trò chơi của bạn:
thêm Danh sách liên kết vào cấp trò chơi của bạn
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
thêm các câu hỏi đã được trả lời vào LinkedList:
Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]
thêm một hàm tạo mệnh đề where:
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND " + YOURID + " <> " + l);
}
return result.toString();
}