首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CursorIndexOutOfBoundsException:请求索引2,大小为2。如何解决?

CursorIndexOutOfBoundsException:请求索引2,大小为2。如何解决?
EN

Stack Overflow用户
提问于 2022-05-24 17:34:26
回答 1查看 35关注 0票数 -1

查询SQLite数据库时,只显示2行。有可能修复这个错误吗?

代码语言:javascript
复制
Cursor cursor = database.rawQuery("SELECT * FROM Category", null);
            cursor.moveToFirst();
            for (int i = 0; i < 10; i++) {
                categoryList.add(new Category(cursor.getInt(0), cursor.getString(1)));
                cursor.moveToNext();
            }
            cursor.close();
            database.close();

错误:

代码语言:javascript
复制
Process: com.triangle.learningenglish, PID: 30477
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.triangle.learningenglish/com.triangle.learningenglish.Select.SelectCategory}: android.database.CursorIndexOutOfBoundsException: Index 2 requested, with a size of 2
EN

回答 1

Stack Overflow用户

发布于 2022-05-24 17:55:27

造成此错误的原因是您没有检查游标是否为空。您只需遍历for循环并检索可能有或没有值的结果。

我想这行代码解决了你的问题

代码语言:javascript
复制
Cursor cursor = database.rawQuery("SELECT * FROM Category", null);
            
int numberOfRows = cursor.getCount();
int counter = 1;
cursor.moveToFirst();
        while(numberOfRows !=0 && counter <= numberOfRows){
             categoryList.add(new Category(cursor.getInt(0), cursor.getString(1)));
             counter++;
             cursor.moveToNext();
            }
            cursor.close();
            database.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72367161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档