2011-06-28 68 views
1
從遊標數據問題

我得到我的logcat以下錯誤運行我的應用程序時:與顯示的Android

06-28 13:39:57.827: ERROR/AndroidRuntime(10490): java.lang.RuntimeException: Unable to start activity ComponentInfo{random.test/random.test.ResultsActivity}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2

觸發錯誤代碼:

myCursor.getString(0) 

我已經簽出我的SQL查詢,它運行正常,當我在SQLite數據庫瀏覽器中運行它(我從我的模擬器拉動數據庫,沒有更改)。它返回1列,2行:

-------- 
| test | 
-------- 
| asd1 | 
-------- 
| asd2 | 
-------- 

當我在我的光標運行getColumnIndex( 「測試」)返回 '0'。所以我在這裏完全沒有想法,它說一個現有的專欄不存在?

回答

3

在嘗試使用它之前,您可能需要先致電moveToFirst() on the Cursor。另外,getColumnIndex(String)返回一個基於0的索引,所以如果它返回0,那麼它是一個有效的列。 -1會建議該列不存在。

+0

感謝這工作! –

2

在嘗試訪問數據之前,您應該先執行myCursor.moveToFirst()。

+0

感謝這工作! –

1

getColumnIndex(「test」)讓你知道列的索引。它沒有提到關於行數的信息......你可以從一個有'n'列的表中創建0行。

所以getColumnIndex爲0的結果(「測試」),只是說你在位置0

關於myCursor.getString(0)列,錯誤是因爲你沒有任何結果。 您是否將光標移至第一個元素?不要忘了打電話moveToFirst()...

希望這可以幫助你...