当前位置: 首页 > 知识库问答 >
问题:

android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为22

暨高洁
2023-03-14

我知道有很多关于这个异常的线程,但是,我希望人们查看我的代码,并在我特别出错的地方帮助我。

下面是我的代码,用于尝试将用户输入存储到sqlite数据库,然后将代码传输并显示在新活动中。有人能告诉我哪里出错了,为什么这个错误不断发生?(标题错误)

   Cursor res = myDb.getAllData();


            StringBuffer buffer = new StringBuffer();

            String getid = res.getString(0);
            String getlt = res.getString(1);
            String getpt = res.getString(2);
            String getqty = res.getString(3);
            String getdur = res.getString(4);
            String getst = res.getString(5);
            String getet = res.getString(6);


            if ( res != null && res.moveToFirst()) {
                do {
                    buffer.append(getid);
                    buffer.append(getlt);
                    buffer.append(getpt);
                    buffer.append(getqty);
                    buffer.append(getdur);
                    buffer.append(getst);
                    buffer.append(getet);
                } while (res.moveToNext());
            }


            Intent TransferData = new Intent(getBaseContext(), screen4.class);
            TransferData.putExtra("ID", getid);
            TransferData.putExtra("LineType", getlt);
            TransferData.putExtra("PackageType", getpt);
            TransferData.putExtra("Quantity", getqty);
            TransferData.putExtra("Duration", getdur);
            TransferData.putExtra("Starttime",getst);
            TransferData.putExtra("endtime", getet);

            startActivity(TransferData);
        }
    });
}

}

在DO块内尝试2:

 Cursor res = myDb.getAllData();


            StringBuffer buffer = new StringBuffer();


            if ( res != null && res.moveToNext()) {
                do {

                    String getid = res.getString(0);
                    String getlt = res.getString(1);
                    String getpt = res.getString(2);
                    String getqty = res.getString(3);
                    String getdur = res.getString(4);
                    String getst = res.getString(5);
                    String getet = res.getString(6);

                    buffer.append(getid);
                    buffer.append(getlt);
                    buffer.append(getpt);
                    buffer.append(getqty);
                    buffer.append(getdur);
                    buffer.append(getst);
                    buffer.append(getet);

                    Intent TransferData = new Intent(getBaseContext(), screen4.class);
                    TransferData.putExtra("ID", getid);
                    TransferData.putExtra("LineType", getlt);
                    TransferData.putExtra("PackageType", getpt);
                    TransferData.putExtra("Quantity", getqty);
                    TransferData.putExtra("Duration", getdur);
                    TransferData.putExtra("Starttime",getst);
                    TransferData.putExtra("endtime", getet);

                    startActivity(TransferData);

                } while (res.moveToNext());

共有1个答案

蒯坚白
2023-03-14

你想做什么还不清楚。

在您的代码中有:

String getid = res.getString(0);
String getlt = res.getString(1);
//bla bla bla

我相信他们应该在do街区里。

您已尝试在不将光标移动到第一个位置的情况下访问列数据。

您必须调用Cursor#moveToFirst() 光标读取任何值之前执行code>。

 类似资料:
  • 我想从数据库中选择值,但出现错误 我不知道我的代码哪里错了。。这是我在dbHelper中的代码。 我想得到其他类的值。我使用这个代码。 我一直在搜索,但没有找到错误的解决方案。有人能帮我吗?我真的需要解决办法,请帮帮我。。谢谢当做

  • 我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:

  • 我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误

  • 我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。

  • 我试图用HighscoreDB中的数据填充10个文本视图。每次我的应用程序的游戏结束时,都会要求用户在数据库中存储他们的分数以及姓名。然后,我填充10个文本视图(实际上是20个,但有10行有名称和分数)。这曾经是有效的(当HighscoreDB中有一些highscore记录时),但是自从我创建了一个新的模拟器并因此删除了所有highscore行之后,我一直得到“android.database.C

  • 正如标题所说,我的问题是,当我编译时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:1,Size:1中得到了Exception。这是问题产生的部分。 编辑。 我一直在网上寻找解决方案,所以我很确定问题是数组太小,但我仍然不确定如何解决它。我试图让代码的上半部分只从数组中取出数字并将它们放入一个新的数组中。 这是我调用的其他方法。 我已经坚持