안드로이드 개발 질문/답변
(글 수 45,052)
SimpleCursorAdapter를 확장해서 어댑터를 만들어 ListActivity에서 사용하고 있습니다.
setListAdapter(mAdapter); 하여 list와 연결도 했습니다.
getView(), newView(), bindView()에 로그를 찍어봐도 아무런 로그가 남지 않네요..
아무런 에러 메세지도 없습니다.
getView()를 인위적으로 실행시켜주는 코드를 넣어야하나요??
2010.10.25 11:40:21
simpleCursorAdapter는 말 그대로 simple하게 cursor하고 사용하고자 하는 item layout 정도 던져주면 알아서 관리하는 넘입니다.
getView 같은거 사용하는 건 cursorAdapter 등 다른 adapter를 사용하세요.
2010.10.25 13:21:53
굳이 cursorAdapter사용안하고 BaseAdapter에 cursor값 던져주고 base adapter로도 처리합니다.
하지만 굳이 cursorAdapter가 있는 이유는 cursor관련 관리를 편하게 하는겁니다.
여기에 SimpleCursorAdapter 라는 건 이 CursorAdapter를 더 편하게 사용하는 겁니다.
그냥 cursor 하고 layout, 들어가는 cursor 항목 값을 layout에 표시될 부분만 매칭시켜서 던져주면 list는 알아서 관리되는겁니다.
프로그래머가 customizing을 하고 싶으시면 윗단의 기본적인걸 사용하는 거구요.
세세한 관계까지 궁금하시다면 직접 플랫폼 소스 분석하시면 될 듯합니다.
2010.10.25 12:07:32
쿼리 부분을 봐야 알꺼 같은데...
그리고 simpleCurosrAdapter에서 윗분 초맨분 말대로 getView나 그런거 사용하지 않는데....
혹시 혹시... setContentView()를 하셨나요 ㄱ-;; 아니다..
setListAdapter이 부분을?
전 간혹 아니 많이 빠져먹는데 가끔인가 ㅎㅎ
layout부분 문제 아닌가요?
2010.10.25 13:37:52
리스트가 adapter의 getView를 통해서 뷰를 받습니다.
getView는 호출이 안될수가 없습니다. getView가 뷰를 받는 인터페이스역할을 하니까요....
리스트 로직상 최초에 getView를 다수 호출하여 몇개를 보여줘야 하는가를 재는 부분도 있습니다.
다만... CursorAdapter의 경우
convertView에 내용을 채우는 로직에 bindView를 활용할 뿐입니다.
그리고 simpleCursorAdapter는 bindView에 ViewBinder 인터페이스를 활용하여
사용자(일반 폰 유저가 아닌 API의 사용자를 말합니다.)로 하여금 뷰와 데이터의 매칭을 좀더 유연하게 할수 있게 지원합니다.
simpleCursorAdapter에 굳이 getView가 구현안된것은 안쓰는게 아니라
상속 받은 코드를 그대로 쓰기때문입니다.
simpleCursorAdapter에서 뷰에 데이터를 매칭해서 채워 넣는 일은 ViewBinder를 쓰시거나
bindView를 오버라이드 해서 쓰시면됩니다.
getView는 호출이 안될수가 없습니다. getView가 뷰를 받는 인터페이스역할을 하니까요....
리스트 로직상 최초에 getView를 다수 호출하여 몇개를 보여줘야 하는가를 재는 부분도 있습니다.
다만... CursorAdapter의 경우
convertView에 내용을 채우는 로직에 bindView를 활용할 뿐입니다.
그리고 simpleCursorAdapter는 bindView에 ViewBinder 인터페이스를 활용하여
사용자(일반 폰 유저가 아닌 API의 사용자를 말합니다.)로 하여금 뷰와 데이터의 매칭을 좀더 유연하게 할수 있게 지원합니다.
simpleCursorAdapter에 굳이 getView가 구현안된것은 안쓰는게 아니라
상속 받은 코드를 그대로 쓰기때문입니다.
simpleCursorAdapter에서 뷰에 데이터를 매칭해서 채워 넣는 일은 ViewBinder를 쓰시거나
bindView를 오버라이드 해서 쓰시면됩니다.



