我已经将游标初始化如下:
@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上阅读了几篇类似的文章,但它们并没有使我知道出了什么问题。任何输入表示赞赏。
游标的列索引从零开始,因此请更改:
cursorState = c.getString(1);
cursorCapital = c.getString(2);
到
cursorState = c.getString(0);
cursorCapital = c.getString(1);
我看过其他问题,但没有一个答案能满足我的需要。当我点击主活动的回收器视图时,它应该把我带到学生活动,但它没有把我带到学生活动,而是给我显示了这个错误。APK也是构建的,但是在使用应用程序时,错误出现了。 谁能帮我解决这个问题吗?
这就是问题所在,我找不到错误在哪里,因为stacktrace不指向我的项目的类,而是指向android原生的类。我尝试在代码的每个部分都放断点,但是当我单击子代码时,没有一个断点被访问。 顺便说一下,我使用ViewHolder模式来处理视图,适配器是一个CursorTreeAdapter 下面是我的代码--完整的stacktrace在最后:
我使用下面的代码来处理一个临时SQLite表: 将数据保存到临时:
日志猫 由:java.lang.IllegalStateException引起:无法从CursorWindow读取第0行,第5行。在从中访问数据之前,请确保光标已正确初始化。在Android.database.cursorwindow.nativegetString(本机方法)在Android.database.cursorwindow.getString(cursorwindow.java:46
TextWatcher代码: LogCat错误:
我已经创建了一个非常简单的数据库android应用程序。它接受输入并显示结果。添加按钮用于添加输入,删除按钮用于删除存储在SQLite数据库中的输入。我在Android SQLite中的光标指向正确,但仍然面临错误:由:java.lang.IllegalStateException引起:无法从CursorWindow读取第0,col-1行。在从中访问数据之前,请确保光标已正确初始化。以下是游标部分