当前位置:  开发笔记 > 编程语言 > 正文

错误:在从中访问数据之前,确保Cursor已正确初始化?

如何解决《错误:在从中访问数据之前,确保Cursor已正确初始化?》经验,为你挑选了1个好方法。

我将游标初始化如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //...Code, code, code...

        c = db.query("US_States", null, null, null, null, null, null, null);


    }

游标本身在同一活动中的单独方法中使用:

public void GameStart()
    {
        int gameCount = 0;
        while(gameCount < 5)
        {
            cursorEntry = new Random().nextInt(c.getCount());
            c.moveToPosition(cursorEntry);
            cursorState = c.getString(1);
            cursorCapital = c.getString(2);
            displayText.setText(cursorState);

它给了我以下错误:

E/CursorWindow? Failed to read row 20, column 2 from a CursorWindow which has 50 rows, 2 columns.

cursorCapital = c.getString(2);每次重新运行应用程序时,堆栈跟踪指向此行.它总是在那里出错.

数据库是这样的:

State|Capital
Alabama|Montgomery
Alaska|Juneau
Arizona|Phoenix
...The rest of the states

我在SO上阅读了几篇类似的帖子,但他们没有让我知道出了什么问题.任何输入都表示赞赏.



1> Shayan Pourv..:

游标的列索引从零开始,因此更改:

 cursorState = c.getString(1);
 cursorCapital = c.getString(2);

cursorState = c.getString(0);
cursorCapital = c.getString(1);

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有