SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

बिना दोहराव के SQLite से बटन पर टेक्स्ट को बेतरतीब ढंग से कैसे सेट करें?

आपकी समस्या को हल करने के लिए और भी तरीके हैं:

  1. शुरुआत में sql-स्टेटमेंट (बिना सीमित) निष्पादित करें और जब किसी प्रश्न का सही उत्तर दिया जाए तो कर्सर की अगली प्रविष्टि पर जाएँ
  2. उन प्रश्नों को बफर करें जिनका उत्तर पहले ही दिया जा चुका है

दूसरा तरीका इस प्रकार किया जा सकता है:

सबसे पहले, जहां-क्लॉज सहित अपना तरीका और 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();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite JSON_EACH ()

  2. SQLite डेटाबेस कॉलम से केवल संख्यात्मक मान वापस करने के 2 तरीके

  3. स्क्लाइट में सम्मिलित क्वेरी के साथ समस्या? (परिवर्तनीय सम्मिलित करें)

  4. SQLite में वर्तमान तिथि कैसे प्राप्त करें

  5. Android SQLite के डेटाबेस संस्करण को कहाँ संग्रहीत करता है?