유혁의 개발 스토리

[Android] ListView 사용법 완벽 정리 (SimpleAdapter, CustomAdapter) 본문

Android

[Android] ListView 사용법 완벽 정리 (SimpleAdapter, CustomAdapter)

유혁. 2017. 8. 7. 10:39

안드로이드에서 자주 사용되는 ListView는

 

데이터들을 한곳에 모아 깔끔하게 보여줍니다.

 

안드로이드에서 ListView를 어떻게 만드는지 알아보겠습니다.

 

ListView는

 

 

 

그림과 같이 표현이 됩니다.

 

위 그림은 가장 기본적인 ListView이며 원하는 형태의 ListView를

 

Customizing 하여 개발 할 수 있습니다.

 

 

 

 

 

● ListView 생성 흐름

 

 

 

ArrayList나 문자배열 등 Listiew에 데이터를 넣어줄

 

초기화된 데이터 형을 만들어 줍니다. (HaspMap<Obj,Obj>,  ArrayList , String[] 등)

 

초기화된 데이터를 가지고 Adapter를 거쳐 ListView 각 position에 뿌려줍니다.

 

Adapter는 ListView에 데이터를 넣어주는 중계역할을 수행합니다.

 

 

 

SimpleAdapter는 간단하게 ListView에 데이터를 넣어주며 확장이 다소 적습니다.

 

CustomAdapter는 데이터 넣어주는 방식을 원하는 대로 설정이 가능하여 확장성이 높습니다.

 

 

 

저는 SimpleAdapter보다는 CustomAdapter사용하는것을 권장하며 추후에 스크롤간 데이터 섞이는 현상도

 

방지할 수 있습니다. (데이터가 많으면 스크롤간에 데이터 섞이는 현상 발생)

 

 

 

 

● SimpleAdapter를 이용한 ListView 생성

 

activity_main.xml 을 다음과 같이 작성해줍니다.

 

 

 

● MainActivity 작성

 

 

 

 

 

Simple Adapter를 이용한 ListView 생성은 간단한 소스코드로 생성이 가능했습니다.

 

간단한 뷰를 구현하는데에는 편리한 방식입니다.

 

 

 

하지만 내가원하는 ListView 디자인이 있는데 SimpleAdapter로는 만들수가 없습니다.

 

내가 Adapter를 만들어서 뿌려주고 싶다

 

CustomAdapter를 만들어줍니다.

 

 

 

 

 

 

● CustomAdapter를 이용한 ListView 생성

 

 

어플리케이션에 하나의 Adapter를 만들어 통일된 디자인과 기능을 사용한다면

 

CustomAdapter 하나의 클래스를 이용하여 사용하면 편리하지만

 

ListView 형태가 각각 다른 CustomAdapter라면 여러개의 CA를 선언해야합니다.

 

 

Adapter, ListVO 패키지를 만들어 줍니다.

 

생성된 패키지 내 ListViewAdapter, ListVO 클래스를 생성합니다.

 

 

 

ListViewAdapter를 다음과 같이 작성합니다.(CustomAdapter 입니다)

 

 

ListVO 입니다.

 

 

 

MainActivity.class

 

 

 

activity_main.xml

 

 

 

 

custom_listview.xml

 

custom_listview는 내가 원하는 listview의 디자인을 구성하시면 됩니다.

 

 

위 파일들을 모두 생성하였다면 drawable의 one two three 이미지를 넣어주면 됩니다.

 

혹시나 테스트해볼 이미지가 없다면 파일 이미지 다운 받으시고 복붙하시면됩니다.

 

 

마지막으로

 

프로젝트 전체 경로입니다.

 

 

 

다 만들어 보았으니 실행해봅시다.

 

 

● 결과