2012-10-27 79 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中显示它们。 –