2010-11-23 3 views
0

De mon main.java:sqlite android problème de curseur listview

Cursor c = db.getDue(); 

    String[] columns = new String[] { "_id", "date" }; 

    int[] to = new int[] { R.id.num, R.id.date }; 

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, 
      R.layout.lventer, c, columns, to); 
    ListView lv1 = (ListView)findViewById(R.id.ListView01); 

    lv1.setAdapter(mAdapter); 

De ma classe wrapper de base de données:

public Cursor getDue() { 
    //String getdue = "SELECT * FROM tb1"; // this returns _id+date and displays them in the listview via the cursor adapter, defined above 
    String getdue = "SELECT _id, max(date) AS date FROM tb1 GROUP BY _id";// this only works if I remove the "date" bindings defined above, only letting me see the _id, i want to see both _id and date in the lit view. 

    return db.rawQuery(getdue,null); 

Si j'utilise la deuxième sélection statment puis il se bloque à moins que je retire la « date "à partir de la liaison cursor/listview bindings, si je le fais alors il affichera le _id retourné dans la listview, mais je veux voir à la fois _id et date dans la listview.

On m'a dit que la deuxième déclaration pourrait renvoyer un type différent pour la date en raison de la fonction max (je ne suis pas encore très alphabétisée), mais je pensais que sqlite était lâche avec les types de données? Quelqu'un peut-il aider, merci d'avance.

** Mise à jour ** Ceci est la commande qui wont travail avec 2 colonnes fr la vue de la liste:

SELECT _id, max(date) FROM jobs GROUP BY _id HAVING max(date) < (date-21) 

Répondre

2

Utilisez ceci:

String getdue = "SELECT _id, max(date) AS date FROM tb1 GROUP BY _id"; 
+0

xandy désolé j'avais collé la requête incorrecte dans la ci-dessus, s'il vous plaît vérifier la mise à jour. – brux

+0

Je devine que la colonne retournée de la requête n'est pas "date", mais je ne sais pas ce que cela pourrait être puisque je n'ai jamais construit la requête moi-même en raison du manque de connaissances sql, mais j'ai un livre commandé! – brux

+0

SQLite ne prend pas en charge le type de données Datetime. S'il vous plaît se référer à ceci: http://www.sqlite.org/datatype3.html#datetime – xandy

Questions connexes