안드로이드 개발 질문/답변
(글 수 45,052)
제목 그대로
DB 가져와서 리스트 뷰로 나타내고 싶어요
예를 들어 DB에
location name 이라는 컬럼이 있는데
이것을 리스트뷰로
서울 김태희
인천 송혜교
충남 박가희
이런식으로 보여주고 해달 리스트를 클릭하면 다음 액티비티로
넘어가는 것을 구현하고 싶은데
리스트뷰부터 어떻게 만드는지를 잘 모르겠네요
xml로 버튼처럼 만들어보려고 했으나
리스트뷰는 id를 가질 수 없는지 계속 에러가나서요ㅠㅠ
많은 답변 부탁 드립니다~ㅠㅠ
아니면 제가 하려는 예제가 있으면 해당사이트 링크도 괜찮습니다!
DB 가져와서 리스트 뷰로 나타내고 싶어요
예를 들어 DB에
location name 이라는 컬럼이 있는데
이것을 리스트뷰로
서울 김태희
인천 송혜교
충남 박가희
이런식으로 보여주고 해달 리스트를 클릭하면 다음 액티비티로
넘어가는 것을 구현하고 싶은데
리스트뷰부터 어떻게 만드는지를 잘 모르겠네요
xml로 버튼처럼 만들어보려고 했으나
리스트뷰는 id를 가질 수 없는지 계속 에러가나서요ㅠㅠ
많은 답변 부탁 드립니다~ㅠㅠ
아니면 제가 하려는 예제가 있으면 해당사이트 링크도 괜찮습니다!
2010.11.14 23:42:33
ListView 에 대한 예제나 자료는 책이나 인터넷이나 엄청나게 많습니다.. 공부를 하셔야 할 것 같아요.
DB 에서 가져와서 보여주고 싶은거라면 어뎁터중에 CursorAdapter 을 사용하면 쉽게 할 수 있다고 알고 있습니다.
검색해보시면 나올꺼에요.
2010.11.15 02:08:46
제 생각에는 CursorAdapter 클래스를 상속받아서 구현하는게 쉬워보입니다~~
일단 액티비티에 ListView를 하나 생성하시고
ListView에 보여줄 쿼리를 하셔서 Cursor
인스턴스를 만드십시요
그다음에 위에서 상속받아 구현한 CursourAdapter 인스턴스를 생성하십시요
Context와 Cursor 인스턴스만 넘겨주시면 생성이 됩니다.
그 후에 listView.setAdapter로 연결해 주시구요~~
이걸로 액티비티에서 할일은 다 끝났습니다
이제부터는 CursorAdapter를 구현하시는데
메소드를 다 구현하는게 아니라
newView 와 bindView만 구현해주시면
됩니다
일단 간단히 설명드리면
NewView메소드에서는 ListView에 한 row를
보여줄려고 하는데 어떤 레이아웃으로 보여줄지를 코딩하는 부분입니다
따라서 한 로우에 표시할 별도의 layout.xml을 만드시고 Layout.inflate 메소드를 사용해서 view 인스턴스를 만드세요
질문자에 의도라면 layout.xml에는 두개의 TextView가 있어야 하겠네요~~
그다음 bindView에는 위에서 만든 한로우를 표시할 view 인스턴스에 데이타를 어떻게 맵핑할지를 지정하는 곳입니다
파라미터로는 context, cursor,view,position이 들어올텐데요 view.findViewById 메소드로 layout.xml에서 정의한 textView 객체를 찾아서 데이타를 맵핑시키시면 됩니다~~
그리고 또하나 view.setOnClickListener 를 구현하셔서 액티비티를 이동시키십시요 ㅎㅎ
제가 지금 넥서스원으로 답글을 다느라 오타나 메소드 명이 조금씩 틀릴수 있으니 검색하시면서 해보세요 ㅎㅎ
전 오늘이 예비군이라 회사로부터 또 휴가를 받은거 같네요 ㅎ
일단 액티비티에 ListView를 하나 생성하시고
ListView에 보여줄 쿼리를 하셔서 Cursor
인스턴스를 만드십시요
그다음에 위에서 상속받아 구현한 CursourAdapter 인스턴스를 생성하십시요
Context와 Cursor 인스턴스만 넘겨주시면 생성이 됩니다.
그 후에 listView.setAdapter로 연결해 주시구요~~
이걸로 액티비티에서 할일은 다 끝났습니다
이제부터는 CursorAdapter를 구현하시는데
메소드를 다 구현하는게 아니라
newView 와 bindView만 구현해주시면
됩니다
일단 간단히 설명드리면
NewView메소드에서는 ListView에 한 row를
보여줄려고 하는데 어떤 레이아웃으로 보여줄지를 코딩하는 부분입니다
따라서 한 로우에 표시할 별도의 layout.xml을 만드시고 Layout.inflate 메소드를 사용해서 view 인스턴스를 만드세요
질문자에 의도라면 layout.xml에는 두개의 TextView가 있어야 하겠네요~~
그다음 bindView에는 위에서 만든 한로우를 표시할 view 인스턴스에 데이타를 어떻게 맵핑할지를 지정하는 곳입니다
파라미터로는 context, cursor,view,position이 들어올텐데요 view.findViewById 메소드로 layout.xml에서 정의한 textView 객체를 찾아서 데이타를 맵핑시키시면 됩니다~~
그리고 또하나 view.setOnClickListener 를 구현하셔서 액티비티를 이동시키십시요 ㅎㅎ
제가 지금 넥서스원으로 답글을 다느라 오타나 메소드 명이 조금씩 틀릴수 있으니 검색하시면서 해보세요 ㅎㅎ
전 오늘이 예비군이라 회사로부터 또 휴가를 받은거 같네요 ㅎ



