Android;如何通过Cursor填充ListView

时间:2012-10-27 14:46:04

标签: android listview simplecursoradapter

我有一个名为users(_id,name)的数据库。 我使用以下方法以名称的升序获取所有记录

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

现在我正在List活动中检索Cursor,如下所示

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

我正在尝试使用简单光标适配器来迭代名称并将其分配给列表视图。但既然已经贬值了怎么实现相同的呢?

2 个答案:

答案 0 :(得分:3)

SimpleCursorAdapter尚未弃用,one of it's constructors has。如果你想将Cursor数据附加到ListView,那么我强烈建议使用SimpleCursorAdapter选项,因为它是最简单的方法。我相信新的SimpleCursorAdapter是在v4支持库中提供的。

答案 1 :(得分:2)

您可以创建扩展BaseAdapter的自定义适配器并保存项目的ArrayList。 调用getAllNames()并在Cursor中拥有所有项目后,迭代Cursor并将所有这些项目放入CustomAdapter的ArrayList中。然后将CustomAdapter设置为ListView适配器。