노트패드처럼 내용을 입력하면 DB에 저장되고 이것을 listView로 볼 수 있는 구조입니다.
입력하는 페이지에서 EditText 개수를 2개에서 7개로 늘렸습니다.
2개였을 때는 잘 수행되다가 7개로 추가하는 과정에서 다음과 같은 에러가 났습니다.
error code 19 <============ 문제가 뭘 까요?
06-13 11:53:22.721: ERROR/Database(3407): Error inserting dinner=ghg lunch=ghg date=gyu snack=yu breakfast=ghg
06-13 11:53:22.721: ERROR/Database(3407): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
06-13 11:53:22.721: ERROR/Database(3407): at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
06-13 11:53:22.721: ERROR/Database(3407): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55)
06-13 11:53:22.721: ERROR/Database(3407): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1549)
06-13 11:53:22.721: ERROR/Database(3407): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410)
06-13 11:53:22.721: ERROR/Database(3407): at com.corea.DietDiary6.DiaryDbAdapter.createDiary(DiaryDbAdapter.java:87)
06-13 11:53:22.721: ERROR/Database(3407): at com.corea.DietDiary6.Diary.onActivityResult(Diary.java:147)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.Activity.dispatchActivityResult(Activity.java:3890)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.ActivityThread.access$2800(ActivityThread.java:125)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
06-13 11:53:22.721: ERROR/Database(3407): at android.os.Handler.dispatchMessage(Handler.java:99)
06-13 11:53:22.721: ERROR/Database(3407): at android.os.Looper.loop(Looper.java:123)
06-13 11:53:22.721: ERROR/Database(3407): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-13 11:53:22.721: ERROR/Database(3407): at java.lang.reflect.Method.invokeNative(Native Method)
06-13 11:53:22.721: ERROR/Database(3407): at java.lang.reflect.Method.invoke(Method.java:521)
06-13 11:53:22.721: ERROR/Database(3407): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-13 11:53:22.721: ERROR/Database(3407): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-13 11:53:22.721: ERROR/Database(3407): at dalvik.system.NativeStart.main(Native Method)
음 그 에러코드는 제약사항 위반(또는 sqlite method 사용시 일반 쿼리문과의 다른 문법적 차이에서 오는 경우도 있습니다.) 해당하는데 , 코드없이 딱히 무엇에 해당하는지 알기는 힘들군요..
입력하는 페이지가 2개였다가 7개로 추가하는 과정에서 이같은 에러가 났다고 하셨는데.. 그것을 바탕으로 조심스럽게 유추해보면 db의 primary키가 중복되서 나오는 경우도 종종 있거든요.
컴파일해서 에뮬이나 디바이스에서 태스트를 한번하게되면 databas파일이 data폴더 하위에 생기는데(root권한이 없으면 탐색기로 확인 불가, 에뮬에서는 가능)....
그 파일에 7개로 추가해서 다시 빌드할 때 전에 있던 db파일을 리셋시키지 않고(아마 dbhelper를 열때 매개변수로 파일 입출력마냥 제어하는 속성이나 매개변수가 있었던듯... ), 그에 덧붙여서 릴레이션을 추가하면 그런 경우가 발생할 수 있거든요.
그런문제인 경우에는 어플리케이션을 data폴더 포함 모두 삭제하시고 다시 빌드하시던가, 아니면 위에 말했던 방식을 찾아서 db를 open하시면 될 것 같네요.