java - 在将数据从 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);
解决方案
你试过这个吗?
// 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 可能会跳到最后一次。
推荐阅读
- java - 在这个问题中如何避免嵌套的for循环
- java - 如何调用 OAuth 端点以获取在 java 中启用 x509 的 accesstoken?
- python - Python scipy 最小化 - 不产生预期回报的简单示例
- http - 这个访问令牌是如何存储在客户端的,在 FastAPI 的教程“Simple OAuth2 with Password and Bearer”中
- python - 在 Tkinter GUI 中创建内置命令行
- java - 使用 AssertJ 在单元测试中检查 Map 条目内的列表
- woocommerce - Woocommerce- 插入 CROSS 和 UP SELL 产品时仅检索库存产品
- solidity - 无法从水龙头合约中提取 ERC-20 代币
- powershell - 如何获取第 1 行中的分隔符数量并将分隔符数量添加到行尾,然后使用 Powershell 保存为新文件
- sql - Oracle:instr+substr 代替 regexp_substr