2017-05-04 3 views
0

Ich bin mit sqlite fest und brauche Hilfe.Cursor in Android Studio testen und Werte zurückgeben

Ich habe bereits eine Tabelle in meiner SQLite-Datenbank mit einigen Informationen darin gespeichert. Der Benutzer der Anwendung soll raten, was in der spezifischen Tabelle gespeichert ist, die ich wähle. In meiner Tabelle habe ich 2 Spalten, die erste Spalte ist ID und die zweite ist NAME.

Dies ist mein Code so weit:

public boolean insert (String name) {

SQLiteDatabase db = this.getReadableDatabase(); 
    String[] cols = new String[]{COL_1, COL_2}; 

    Cursor c = db.query(TABLE_NAME, cols, COL_2 + "=?", new String[]{"" + name}, null, null, null); 
    if (c.getCount() > 0) { 
     return false; 
    } else return true; 
} 

Dieser Code nur zurückkehrt wahr oder falsch auf der Position des Cursors abhängig.

Meine Frage ist: Wie kann ich die spezifische ID der ersten Spalte zurück, wenn der Benutzer direkt auf den Namen der in Spalte 2

Zum Beispiel den Namen ALEX wir haben mit der ID in Spalte 2, erraten von 3.

Typ I Alex und ich den Rückgabewert der ID erhalten, die 3. dieser

+0

was passiert, wenn zwei Reihen haben NAME = "ALEX"? Wofür brauchst du diese ID wirklich? – pskink

+0

Die Datenbank wird von mir vordefiniert. Jede Reihe ist einzigartig, es gibt nicht 2 Alex nur 1 Alex und er ist einzigartig. Ich brauche die ID für die spätere Entwicklung in der Anwendung, um zu wissen, was die ID von der Antwort auf die erste Frage ist, so nach 5-6 Fragen kann ich sehen, ob die Benutzer der Anwendung eindeutige oder identische Antworten haben. – salasar341

Antwort

-1

versuchen ist:

//make global 
    Cursor c; 
    int id = 0; 
    onCreate(){ 
     if(insertData("name")){ 
      if(id > 0){ 
       //do something 
      } 
     } 
    } 
    public boolean insertData(String name) { 

     SQLiteDatabase db = this.getReadableDatabase(); 
     String[] cols = new String[]{COL_1, COL_2}; 

     c = db.query(TABLE_NAME, cols, COL_2 + "=?", new String[]{"" + name}, null, null, null); 
     if (c.getCount() > 0) { 
      return false; 
     } else{ 
      if(c.moveToFirst()){ 
       id = Integer.parsInt(c.getString(c.getColumnIndex("id"))) 
      } 
      return true; 
     } 
    } 
Verwandte Themen