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

listview에 select 된 db값을 불러 올때..

0 추천

 

안녕하세요.

listview와 adapter를 이용해서 연습을 하고있는데요.

insert와 delete는 마무리 되었는데, db를 조회하는 select에서 막혀버렸습니다..

db에 있는 이름들을 불러오려고 하는데요, db파일에 이름이 10개가 있습니다..

oncrate할 때 select 함수를 불러서, 그 함수 안에 쿼리문을 작성했는데요.

 

    String result = ""; //결과물
    
         while(cursor.moveToNext()) { //cursor를 다음 행 이동시킴, 마지막 레코드면 false 리턴
               String name = cursor.getString(0); //이름
               result += (name); //이름값 저장
         }
         if(cursor.getCount()>0)
        startManagingCursor(cursor);
         //커서와 어댑터 연결
.
.
여기서 막혀서 고민입니다 ㅠ.ㅠ...
현재 insert할 때나 전체적으로 사용하는 arraylist와 어댑터를 구현했는데요..
 if(cursor.getCount()>0) -> 이 부분이 커서의 갯수..즉 db에 저장된 이름값의 갯수인것 같은데요,
여기 안에 result 저 값을 어떻게 listview와 연결해야 할지 모르겠습니다 ㅠㅠ.. 조언부탁드립니다. 
anci (19,950 포인트) 님이 2014년 2월 10일 질문

1개의 답변

0 추천
CursorAdapter를 사용하시면 편해요. cursor를 바로 넘기면 되요. result는 필요없어요.

 

CursorAdapter 사용법은 여기를 참고하세요.

 

http://blog.naver.com/PostView.nhn?blogId=rosaria1113&logNo=104195945&categoryNo=76&viewDate=&currentPage=1&listtype=0
방귀과장 (18,940 포인트) 님이 2014년 2월 10일 답변
답변 감사합니다.
알려주신 링크 외에 다른데서 찾아보니 어댑터가 크게
단순하게 리스트뷰에 항목을들을 띄울 때랑, db 값을 받는 커서어댑터로 나뉜다는데요, 저같은 경우엔 db에 update빼고 추가/삭제/조회만 하는데,
조회 기능 넣기 전에는 listview랑 adapter만 사용했거든요..
지금 말씀해주신대로라면, db의 cursor값을 이용하는 어댑터인 커서어댑터로만 사용해서  adapter.notifyDataSetChanged(); 이런식으로 추가할 때도 갱신해서 보여주면 될까요 ㅠ?
현재 일반 어댑터로도 추가할 때는 리스트에 차곡차곡 쌓여서 보이거든요..
changeCursor 메소드를 사용해야 합니다.

아이템을 추가한 다음 쿼리를 통해 Cursor 객체를 얻습니다. 그 다음 위 메소드를호출하면 됩니다.

adapter.changeCursor(newCursor);
...