我已经创建了一个非常简单的数据库android应用程序。它接受输入并显示结果。添加按钮用于添加输入,删除按钮用于删除存储在SQLite数据库中的输入。我在Android SQLite中的光标指向正确,但仍然面临错误:由:java.lang.IllegalStateException引起:无法从CursorWindow读取第0,col-1行。在从中访问数据之前,请确保光标已正确初始化。以下是游标部分:cursor c=db.rawQuery(query,null);
c.moveToFirst();
//Traversing through DB
while (!c.isAfterLast()){
if(c.getString(c.getColumnIndex("studentname")) !=null)
{
dbString += c.getString(c.getColumnIndex("studentname"));
dbString +="\n"; }
c.moveToNext(); }
db.close();
return dbString;
我尝试改变光标位置,但仍然出现相同的错误。我在其他网站上进行了研究,同样是概念,但仍然有一个问题。
显然,如果c.getcolumnindex(“studentname”)
返回-1
,则结果集中没有studentname
列。
我看过其他问题,但没有一个答案能满足我的需要。当我点击主活动的回收器视图时,它应该把我带到学生活动,但它没有把我带到学生活动,而是给我显示了这个错误。APK也是构建的,但是在使用应用程序时,错误出现了。 谁能帮我解决这个问题吗?
这就是问题所在,我找不到错误在哪里,因为stacktrace不指向我的项目的类,而是指向android原生的类。我尝试在代码的每个部分都放断点,但是当我单击子代码时,没有一个断点被访问。 顺便说一下,我使用ViewHolder模式来处理视图,适配器是一个CursorTreeAdapter 下面是我的代码--完整的stacktrace在最后:
日志猫 由:java.lang.IllegalStateException引起:无法从CursorWindow读取第0行,第5行。在从中访问数据之前,请确保光标已正确初始化。在Android.database.cursorwindow.nativegetString(本机方法)在Android.database.cursorwindow.getString(cursorwindow.java:46
TextWatcher代码: LogCat错误:
我使用下面的代码来处理一个临时SQLite表: 将数据保存到临时:
问题内容: 我已经将游标初始化如下: 游标本身在同一活动中的单独方法中使用: 它给了我以下错误: 每次我重新运行应用程序时,堆栈跟踪都指向此行。那里总是会给出一个错误。 该数据库是这样的: 我在SO上阅读了几篇类似的文章,但它们并没有使我知道出了什么问题。任何输入表示赞赏。 问题答案: 游标的列索引从零开始,因此请更改: 到