首页 > 解决方案 > 在将数据从 sqlite 加载到 arraylist 时,我只得到最后一行。如何获取所有记录?

问题描述

我正在尝试通过将 sqlite 数据添加到 arraylist 来将 sqlite 数据填充到 recyclerview。我没有得到所有记录,但只有数据库表的最后一行。

        cursor = sqLiteHelper.getData("SELECT * FROM news");

        while (cursor.moveToNext()) {

            String image = cursor.getString(cursor.getColumnIndex("image"));
            String title = cursor.getString(cursor.getColumnIndex("title"));
            String category = cursor.getString(cursor.getColumnIndex("category"));

            mExampleList.add(new ExampleItem(image, title, category));


        }


        mExampleAdapter = new ExampleAdapter(MainActivity.this, mExampleList);
        mRecyclerView.setAdapter(mExampleAdapter);

标签: javaandroid

解决方案


你试过这个吗?

// Move first to be sure
cursor.moveToFirst()
while(!cursor.isAfterLast()) { // Dont jump to the next before first iteration
    String image = cursor.getString(cursor.getColumnIndex("image"));
    String title = cursor.getString(cursor.getColumnIndex("title"));
    String category = cursor.getString(cursor.getColumnIndex("category"));

    mExampleList.add(new ExampleItem(image, title, category));

    // And then 
    cursor.moveToNext()
} 
cursor.close()

您的存储中有多少条记录?因为如果有 2 个第一次调用cursor.moveToNext()while 可能会跳到最后一次。


推荐阅读