如何在列表视图中显示数据库中的数据?

时间:2012-01-03 08:42:07

标签: android

我写了一些这样的东西来从数据库中获取数据。

public String getData() {
    // TODO Auto-generated method stub
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE};
    Cursor c = ourDatabase.query(
                DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iRow = c.getColumnIndex(KEY_ROWID);
    int iName = c.getColumnIndex(KEY_NAME);
    int iHotness = c.getColumnIndex(KEY_SCORE);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iHotness) + "\n";
    }

    return result;
}

我可以将数据显示到textview中。但是我希望将数据显示到listview中,任何人都可以建议我或者给我一个示例代码来将数据显示到listview中。我已经使用了list.xml并将listview放入其中。我想从数据库中获取数据。

提前感谢。

2 个答案:

答案 0 :(得分:1)

在列表中显示数据并不像说getListView().setData(myData);

那么简单

首先,创建一个列表适配器,这是一个获取一些数据的类(通常作为一个ArrayList),并以列表可以读取的方式将它“提供”到列表中。

查看开发人员文档:http://developer.android.com/reference/android/widget/ListAdapter.html

还有一些教程:

答案 1 :(得分:1)

public String[] getData() {
    // TODO Auto-generated method stub
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    //Initialise the result variable
    String[] result = new String[c.getCount()];

    int iRow = c.getColumnIndex(KEY_ROWID);
    int iName = c.getColumnIndex(KEY_NAME);
    int iHotness = c.getColumnIndex(KEY_SCORE);
    int counter = 0;
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result[counter] = c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iHotness) + "\n";
        counter++;
    }

    return result;
}

然后在ListView onCreate中,将结果字符串添加到适配器。

   setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, result));