안드로이드 개발 질문/답변
(글 수 45,052)
onCreate에서
insert("1","2","3","5":);
insert("1","2","3","5":);
insert("1","2","3","5":)
insert("1","2","3","5":);
insert("1","2","3","5":);
insert("1","2","3","5":);
insert("1","2","3","5":)
insert("1","2","3","5":);
이렇게 해서 dB 파일을 만들어서
생성하였습니다.
처음에는 만들때는 잘 되엇는데
2번째 어플을 실행하면
똑같은 데이터가 계속 입력 됩니다.
한번만 입력 되게 하려고 하는데 어떻게 해야하는지 잘 모르겠습니다.
가르쳐주세요..
아니면 DB 예자라도...
외부DB는 오라클이나 my-sql로 만들어서
안드로이이드 db로 사용하는것인가요?
2010.07.13 17:03:27
데이터가 모두 입력 됐으면
insert문을 모두 주석처리하세요
데이터베이스에 데이터가 입력되면 프로그램을 삭제할 때까지 남아있게 되고
insert를 호출할 때마다 계속 디비에 추가됩니다.
아니면 디비에 해당 데이터가 있는지 검색한 후 없으면 insert하는 식으로 하셔도 되구요
2010.07.13 19:57:00
http://bunhere.tistory.com/140
일단 이예제를 가지고 ListActivity를 이용하여
SimpleCursorAdapter 리스트로 출력하였습니다.
다음에 실행할때 주석 처리 해서 하면 잘 실행됩니다. 그렇지만 만약에 이 어플을 다른사람들이 사용하면.. 수정이 불가하니...
혹은 onCreate() 마지막에 db파일을 지우는 명령어를 넣으면..
실행됩니다. 그렇지만.. 많은 db를 입력하면 프로그램이 로딩이 시간이 걸립니다.
어떻게 해결방법좀 없을까요...
2010.07.13 21:42:22
공심님께서 말씀하신대로 <meta http-equiv="content-type" content="text/html; charset=utf-8">SQLiteOpenHelper 를 사용해 Table 을 만들고 하면 쉬울 것 같은데요.
ListActivity 의 onCreate 에서 하신다면.. Activity가 불릴때마다 insert 가 일어나니..
정 뭐하시다면 databaseList() 함수를 써서 db 가 없을때만 check 해서 data 를 넣어주면 안될라나요.
<meta http-equiv="content-type" content="text/html; charset=utf-8">



onCreate() 가 어느 클래스를 상속받았을 때 사용된것인지를 알아야 더 정확하게 알려드릴 수 있을거 같습니다.
일반적으로 SQLiteOpenHelper 를 상속받은 클래스에서 onCreate() 메소드는 처음 Database 가 생성될 때 한번 호출됩니다.
onCreate() 가 속한 클래스가 매번 생성될 때마다 호출되에 데이터가 insert 되는거 같습니다.