android - SQLite 选择所有行并添加到 ListView Android

标签 android sqlite

我想将从数据库中检索到的每一行添加到 ListView 中,这是我目前所做的。

Activity 类代码

    private void getList() {
    list.add(dbms.selectAllFromRatings());
    arrayAdapter = new ArrayAdapter<String>(StationListView.this,
            android.R.layout.simple_list_item_1, list);
    listView.setAdapter(arrayAdapter);
}

//来自 databaseHelper 类的代码

    public String selectAllFromRatings() {
    String selectAllQuery = " SELECT * FROM " + RATING_TABLE_NAME ;
            SQLiteDatabase sql = this.getReadableDatabase();
            Cursor c = sql.rawQuery(selectAllQuery, null);
        c.moveToFirst();
        return c.getString(c.getColumnIndex("stationName1"));
}

最佳答案

那样你只会得到一个元素。您需要返回一个 List。遍历 Cursor 按顺序添加每个元素,直到没有更多元素,完成后关闭它。例如:

private void getList() {
    List<String> list = dbms.selectAllFromRatings();
    arrayAdapter = new ArrayAdapter<String>(StationListView.this,
            android.R.layout.simple_list_item_1, list);
    listView.setAdapter(arrayAdapter);
}

// Since getList() is private, this method should also be private
private List<String> selectAllFromRatings() {
    String selectAllQuery = " SELECT * FROM " + RATING_TABLE_NAME;         
    SQLiteDatabase sql = this.getReadableDatabase();
    Cursor c = sql.rawQuery(selectAllQuery, null);
    final List<String> list = new ArrayList<String>();
    try {
        while(c.moveToNext()) {
            list.add(c.getString(c.getColumnIndex("stationName1")));
        }
    } finally {
        c.close();
    }
    return list;
}

请注意,我没有对此进行测试,但它应该会让您了解如何循环游标结果。

关于android - SQLite 选择所有行并添加到 ListView Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29610574/

相关文章:

android - WindowBackground 可以位于状态栏下方和导航栏上方吗?

sqlite - 如何将 sqlite 数据库导入 phpMyAdmin?

安卓数据库为空

python - 在 django 中不使用交互式 python shell 将值插入数据库表

android - 如何在 SQLite 中迭代文本字符串?

python - sqlite 嵌套 for 循环错误

android - 强制外部站点上的链接在 iOS 或 Android 应用程序上的 UIWebView 之外打开

java - 有什么方法可以恢复 YouTube API 视频吗?

android - Android Studio 设计 View 中出现奇怪的线条

java - android sax 解析器处理程序