리스트 뷰는 어댑터 뷰의 대표 위젯으로 수직으로 데이터를 보여줄 때 주로 사용된다.
전화번호목록, 최신통화목록, 문자 목록등 많은 양의 데이터를 수직으로 보여줄때 용이하다.
다른 위젯들 역시 동작 방식이 유사하므로 리스트 뷰만 재대로 익힌다면 나머지 위젯또한 쉽게 익힐 수 있다.
리스트 뷰를 사용하기 위해서는 3가지가 필요하다.
1.뷰 : 실제로 화면에 보여준다
2.어댑터 : 뷰와 데이터 사이의 중간 매개체 역할
3.데이터 : 보여줄 실제 데이터
main.xml
ListViewTestActivity.java
예제의 어댑터 부분을 보면 매개 변수 부분중에 android.R.layout.simple_list_item_1 부분이 있는데
그외 ListView에서 사용되는 기본 레이아웃들.
정의되어 있는 xml 파일 |
설명 |
simple_list_item_1 |
텍스트 뷰 하나로 구성된 레이아웃 |
simple_list_item_ | 텍스트 뷰 두개로 구성된 레이아웃 |
simple_list_item_checked | 오른쪽에 체크 표시가 된다 |
simple_list_item_single_choice |
오른쪽에 라디오 버튼이 나온다 |
simple_list_item_multiple_choice | 오른쪽에 체크 버튼이 나온다 |
데이터 부분을 xml 로도 선언 가능하다
/res/values/arrays.xml
<?xml version=“1.0” encoding=“utf-8”?>
<resources>
<string-array name=“listitems”>
<item>Java</item>
<item>Jsp</item>
<item>Ejb</item>
<item>Android</item>
<item>자바</item>
<item>안드로이드</item>
<item>스프링</item>
<item>스트럿츠</item>
</string-array>
</resources>
코드수정
ArrayList<String> dataArr = new ArrayList<String>();
dataArr.add("JAVA");
dataArr.add("JSP");
dataArr.add("EJB");
dataArr.add("ANDROID");
ArrayAdapter<String> Adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, dataArr);
위의 부분을 아래와 같이 수정.
ArrayAdapter<CharSequence> Adapter =
ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_list_item_1);
특별히 달라진건 없지만 자바코드의 양이 줄었다.
데이터가 수시로 추가되고 삭제되고 변경이 자주 생긴다면 자바코드에서 데이터를 만들고
데이터의 변경 값이 일정하다면 xml 상에 데이터를 만드는 것이 편리하다
대표적으로 많이 쓰는 ListView의 속성
1. android:divider
- 항목 사이사이의 구분선을 설정한다. RGB로 색상을 지정하거나 Drawable로 설정가능하다.
2. android:dividerHeight
- 구분선의 높이를 설정한다.
3. android:entries
- 리스트뷰에 표시할 배열을 지정한다. static 배열이라면 이녀석으로 사용이 가능하다.
4. android:footerDividersEnabled
- 만약에 false로 설정을 하면 리스트뷰의 바닥뷰(footer View)를 보기 전까지 구분선을 그리지 않는다. 기본값은 true.
5. android:headerDividersEnabled
- 만약에 false로 설정을 하면 리스트뷰의 헤더뷰(header view)를 본 후에 구분선을 그리지 않는다. 기본값은 true.
6. android:choiceMode
- 항목 선택 모드를 결정한다. 아래의 모드를 통해 1개 또는 여러개의 선택이 가능하다.
속성값(xml 사용) |
java 파일에서 사용할때 변수 값 |
설명 |
none |
CHOICE_MODE_NONE |
항목 선택이 불가능 |
singleChoice | CHOICE_MODE_SINGLE | 항목 하나를 선택 가능 |
multipleChoice | CHOICE_MODE_MULTIPLE | 항목 여러개를 선택 가능 |
'Android' 카테고리의 다른 글
이클립스 안드로이드 환경 구축 [SDK Manager 실행 문제] 무반응 (1) | 2013.05.07 |
---|---|
안드로이드 리스트뷰 추가 삭제 (0) | 2012.08.01 |
안드로이드 어댑터 뷰 (0) | 2012.08.01 |
안드로이드 기본 위젯 (0) | 2012.07.31 |
안드로이드 리소스, 에셋 (0) | 2012.07.31 |