2015-04-02 28 views
1

這是我的代碼:CursorIndexOutOfBoundsException與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()方法,因爲我需要一個隨機行。

有人可以幫助我嗎?

回答

0

因爲列不存在。如果我理解正確。要光標從該行移動到任意位置,並讀取數據:

使用

cursor.moveToPosition(randomNumber); 

,然後從正確的列中讀取,使用getColumnIndexOrThrow讀取列的索引。您還應該檢查隨機號碼是否在0cursor.getCount() - 1之間

1

調用getInt()方法之前使用

cursorTypeZero.moveToPosition(position) 

嘗試。 @blackbelt回答後編輯..

相關問題