본문 바로가기
Computer & Program/Android

[Android]onItemClick()와 onListItemClick()의 차이

by TDRemon 2012. 11. 20.
반응형

안녕하세요. TDR입니다.


오늘은 최근 삽질한 내용을 올릴려고 합니다. 아시는 분은 다 아실 내용이지만 Activity에서 listview를 배정해서 onItemClick()을 사용한 내용과 ListActivity를 상속받은 onListItemClikc()에 대한 파라미터의 내용에 관해서 입니다. 일단 android dev에서 발췌한 내용을 보시면...


* onItemClick()


* onListItemClick()


이렇습니다. 첫 파라미터로 AdapterView를 받아오느냐 ListView를 받아오느냐의 차이만 있지 쓰는 방식은 거~의 동일합니다. 제가 삽질한 부분은 마지막 파라미터인 long id 부분입니다. database를 만들어 필요한 내용을 list에 뿌려주고 해당 내용을 수정 및 삭제가 필요할 때 선택을 하게 해놨는데 onListItemClick에서는 잘 동작하던 코드가 onItemClick에서 이상하게 동작하는 문제가 있었습니다. 제가 database 사용에 미숙해서 처음에는 database쪽을 잘 못 만들었나 그쪽만 확인했었는데 아무리봐도 문제는 없고 이상한 값을 참조하는 현상은 여전하고... 그러다가 발견한 현상이 내가 선택한 위치보다 항상 하나 작은 id값을 참조한다는 것을 알고 debug를 찍어보니 onItemClick은 0부터 시작이고 onListItemClick은 1부터 시작이더군요... -_-;;;


database의 id값 역시 1부터 시작이기 때문에 onListItemClick()의 경우 intend에 그냥 id 값을 실어서 보내면 됐지만 onItemClick()의 경우 id 값을 하나 증가시켜서 보내면 됐습니다... 참으로 간단한 문제였는데 여기에 투자한 시간을 생각하면 내가 얼마나 멍청했는지 새삼 깨닫게 해준 경험이었습니다.

반응형

댓글