2012-01-03 5 views
3

안녕하세요 저는 코드에서 경계 밖으로 오류가 발생합니다. 활동에서커서 색인 오류 초과 Android?

:

  Cursor cursor = mDbHelper.fetchA(b); 
      @SuppressWarnings("static-access") 
      int a = (int) cursor.getDouble(cursor.getColumnIndex(mDbHelper.KEY_I)); 
      cursor.close(); 

내 DB 어댑터 :

public Cursor fetchA(String b){ 
    return mDb.query(DATABASE_TABLE, new String[] {KEY_I}, "b=\""+B+"\"", null, null, null, null); 
} 

오류 :

나는이 문제를 해결할 수있는 방법
E/AndroidRuntime(5766): FATAL EXCEPTION: main 

    E/AndroidRuntime(5766): android.database.CursorIndexOutOfBoundsException: Index 

    -1 requested, with a size of 1 

?

답변

5

커서는 첫 번째 행 앞에 앞에 커서를 놓고 시작합니다. 따라서 데이터를 가져 오기 전에 커서를 첫 번째 행으로 이동해야합니다. Cursor#moveToFirst() 또는 #moveToNext()해야합니다. 여기

Cursor cursor = mDbHelper.fetchA(b); 
cursor.moveToNext(); 
@SuppressWarnings("static-access") 
int a = (int) cursor.getDouble(cursor.getColumnIndex(mDbHelper.KEY_I)); 
cursor.close(); 
0
Cursor cursor = mDbHelper.fetchA(b); 
startManagingCursor(cursor); 
cursor.moveToNext(); 
....... 

당신의 검색 코드입니다.