마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 DB를 사용하는데 자꾸 에러가 나오는데 무슨에러인지 모르겠어요....ㅠㅠ

0 추천

 


이렇게 디비를 열고 디비를 사용하려고 하는데 
아래 로그가 뜨면서 오류가 나네요.....ㅠㅠ..
 
_DB = this.openOrCreateDatabase("ha2ru.db", MODE_WORLD_WRITEABLE, null);
 
String sql ="select * from member";
 
Cursor cursor = _DB.rawQuery(sql, null);
tx.setText(cursor.getString(0));
 
 
로그
 
05-21 14:20:08.833: D/AndroidRuntime(20747): Shutting down VM
05-21 14:20:08.833: W/dalvikvm(20747): threadid=1: thread exiting with uncaught exception (group=0x4116e2a0)
05-21 14:20:08.843: E/AndroidRuntime(20747): FATAL EXCEPTION: main
05-21 14:20:08.843: E/AndroidRuntime(20747): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 5
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:418)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at com.example.mapexam.MainActivity.onMarkerClick(MainActivity.java:198)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at com.google.android.gms.maps.GoogleMap$4.f(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at com.google.android.gms.internal.bp$a.onTransact(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.os.Binder.transact(Binder.java:326)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at bds.a(SourceFile:84)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.aj.bk.a(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.as.d.a(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.as.p.c(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.as.o.a(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.as.bo.c(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.as.bk.onSingleTapConfirmed(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.bs.g.onSingleTapConfirmed(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at maps.bs.i.handleMessage(Unknown Source)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.os.Looper.loop(Looper.java:137)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at android.app.ActivityThread.main(ActivityThread.java:4921)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at java.lang.reflect.Method.invoke(Method.java:511)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
05-21 14:20:08.843: E/AndroidRuntime(20747):  at dalvik.system.NativeStart.main(Native Method)
 
오징어껍질 (140 포인트) 님이 2013년 5월 21일 질문

1개의 답변

0 추천
Cursor cursor = _DB.rawQuery(sql, null);
 
//여기에 추가해야죠~~
cursor.moveFirst();
 
tx.setText(cursor.getString(0));
 
쿼리를 날리고 결과를 Cursor를 받으셨으면 첫번째 데이터를 가르키도록 설정을 하셔야죠.
다음 레코드로 넘갈때는 moveNext(); (메소드명이 정확히 기억은 안나는데.. 대충 비슷할 거에요.)
원조안드로이드 (58,190 포인트) 님이 2013년 5월 21일 답변
...