2011-10-10 17 views
0

我可以打開我的數據庫,沒有明顯的問題,試圖讓與「moveToLast」 sqlite的DB一個光標位置導致強制關閉

這段代碼工作完美....

if (main.cursor.isLast()) { 
      main.cursor.moveToFirst(); 

     } else { 

      main.cursor.moveToNext(); 
     } 

但如果我試着走另一條路用下面的代碼,順着我的數據庫,它強制關閉...

try { 
      if ((main.cursor.isFirst()) || (main.cursor.isBeforeFirst())) { 
       main.cursor.moveToPosition((main.cursor.getCount()) - 1); 
       main.cursor.moveToPosition(lastrow); 
      } else { 

       main.cursor.moveToPrevious(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

我看了遍計算器和在線試圖弄清楚這一點...

請大家幫忙!

編輯:logcat的

10-11 14:57:07.722: DEBUG/AndroidRuntime(450): Shutting down VM 
10-11 14:57:07.722: WARN/dalvikvm(450): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
10-11 14:57:07.752: ERROR/AndroidRuntime(450): FATAL EXCEPTION: main 
10-11 14:57:07.752: ERROR/AndroidRuntime(450): android.database.CursorIndexOutOfBoundsException: Index 185 requested, with a size of 185 
10-11 14:57:07.752: ERROR/AndroidRuntime(450):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 
10-11 14:57:07.752: ERROR/AndroidRuntime(450):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214) 
10-11 14:57:07.752: ERROR/AndroidRuntime(450):  at  android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)  
+0

當您的應用程序強制關閉時,請檢查logcat以查看有關問題的詳細信息。 – spatulamania

+0

此外,如果您想要向後遍歷查詢,我會建議在查詢中顛倒數據的順序,而不是從後到前讀取數據。 – spatulamania

+0

顯示您的logcat ... – vnshetty

回答

0

你logcat的顯示錯誤:CursorIndexOutOfBoundsException:指數185的要求,尺寸爲185,這意味着你移動到錯誤的位置。 似乎是這一行的原因:

main.cursor.moveToPosition(lastrow); 

我認爲該行是無用的。

相關問題