2010-11-23 82 views
0

從我main.java:的Android源碼的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); 

從我的數據庫包裝類:

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); 

如果我用的是第二選擇statment那麼它崩潰,除非我刪除了「日期「從遊標適配器/列表視圖綁定,如果我這樣做,那麼它會顯示列表視圖中返回的_id,但我想在列表視圖中看到_id和日期。

我被告知第二個語句可能會返回一個不同類型的日期因爲最大函數(我不是很有識字能力,但是),但我認爲sqlite與數據類型是鬆散的?任何人都可以幫忙,提前感謝。

**更新**這是不會工作2列FR列表視圖中的命令:

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

回答

2

使用此:

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

對不起xandy我已經貼了不正確的查詢到以上代碼,請檢查更新。 – brux 2010-11-23 04:41:11