2012-10-27 76 views
1

我有一個名爲users(_id,name)的表的數據庫。 我使用下面的方法來獲得名Android;如何通過光標填充ListView

public Cursor getAllNames() { 
    return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME }, 
      null, null, null, KEY_NAME+" ASC", null); 
} 

現在我檢索光標在列表活動的升序排列的所有記錄如下

DBAdapter db= new DBAdapter(this); 

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.lview); 
    ListView l=(ListView) findViewById(R.id.listView1); 
    db.open(); 
    Cursor c=db.getAllNames(); 
    db.close(); 
} 

我試圖用簡單的光標適配器遍歷名稱並將其分配給列表視圖。但既然已經貶值了怎麼實現呢?

+1

https://github.com/lalit3686/CursorAdapter –

+0

@LalitPoptani是它的一個示例代碼? –

+0

是的,你可以下載並檢查它。 –

回答

2

您可以創建一個擴展BaseAdapter並保存項目的ArrayList的自定義適配器。 在調用getAllNames()並且您將所有項目放入遊標之後,遍歷Cursor並將所有這些項目從CustomAdapter放入ArrayList中。然後,將CustomAdapter設置爲ListView適配器。

+1

我是android新手。所以你可以展示一些示例語法,以便我可以得到解決方案。 –

+0

@Andrew,更好的方法是使用SimpleCursorAdapter。 –

+0

確實。這只是一個選擇。 –

3

SimpleCursorAdapter尚未被棄用,one of it's constructors has。如果你想將遊標數據附加到ListView,那麼我強烈建議使用SimpleCursorAdapter選項,因爲它是最簡單的方法。我相信新的SimpleCursorAdapter是在v4支持庫中提供的。

+0

這應該是被接受的答案。沒有必要複製所有項目,只是在ListView中顯示它們。 –