带有 cursor.getInt() 的 CursorIndexOutOfBoundsException
CursorIndexOutOfBoundsException with cursor.getInt()
这是我的代码:
Log.d("MYTAG", "random number -->" + randomNumber);
idRandomCards[i] = cursorTypeZero.getInt(randomNumber);
这是错误日志:
7620-7620/package D/MYTAG﹕ random number -->94
04-02 16:06:51.804 7620-7620/package D/AndroidRuntime﹕ Shutting down VM
04-02 16:06:51.804 7620-7620/package W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41bafda0)
04-02 16:06:51.854 7620-7620/package D/dalvikvm﹕ GC_FOR_ALLOC freed 1283K, 45% free 9237K/16608K, paused 42ms, total 46ms
04-02 16:06:51.864 7620-7620/package E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: package, PID: 7620
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 206
at ecc
如您所见,本例中的随机数值为 94。cursor.getCount() = 206。
为什么我有这个异常?
我不想使用 cursor.getColumnIndexOrThrow() 方法,因为我需要一个随机行。
有人可以帮助我吗?
尝试使用
cursorTypeZero.moveToPosition(position)
在 getInt() 方法之前。
在@blackbelt 回答后编辑..
因为专栏不存在。如果我理解正确的话。您想将光标移动到随机位置,并从该行读取数据:
使用
cursor.moveToPosition(randomNumber);
然后从正确的列中读取,使用 getColumnIndexOrThrow
读取列的索引。您还应该检查 randomNumber 是否在 0
和 cursor.getCount() - 1
之间
这是我的代码:
Log.d("MYTAG", "random number -->" + randomNumber);
idRandomCards[i] = cursorTypeZero.getInt(randomNumber);
这是错误日志:
7620-7620/package D/MYTAG﹕ random number -->94
04-02 16:06:51.804 7620-7620/package D/AndroidRuntime﹕ Shutting down VM
04-02 16:06:51.804 7620-7620/package W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41bafda0)
04-02 16:06:51.854 7620-7620/package D/dalvikvm﹕ GC_FOR_ALLOC freed 1283K, 45% free 9237K/16608K, paused 42ms, total 46ms
04-02 16:06:51.864 7620-7620/package E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: package, PID: 7620
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 206
at ecc
如您所见,本例中的随机数值为 94。cursor.getCount() = 206。
为什么我有这个异常?
我不想使用 cursor.getColumnIndexOrThrow() 方法,因为我需要一个随机行。
有人可以帮助我吗?
尝试使用
cursorTypeZero.moveToPosition(position)
在 getInt() 方法之前。 在@blackbelt 回答后编辑..
因为专栏不存在。如果我理解正确的话。您想将光标移动到随机位置,并从该行读取数据:
使用
cursor.moveToPosition(randomNumber);
然后从正确的列中读取,使用 getColumnIndexOrThrow
读取列的索引。您还应该检查 randomNumber 是否在 0
和 cursor.getCount() - 1