728x90

리스트 뷰는 어댑터 뷰의 대표 위젯으로 수직으로 데이터를 보여줄 때 주로 사용된다.

전화번호목록, 최신통화목록, 문자 목록등 많은 양의 데이터를 수직으로 보여줄때 용이하다.

다른 위젯들 역시 동작 방식이 유사하므로 리스트 뷰만 재대로 익힌다면 나머지 위젯또한 쉽게 익힐 수 있다.

 

리스트 뷰를 사용하기 위해서는 3가지가 필요하다.

1.뷰 : 실제로 화면에 보여준다

2.어댑터 : 뷰와 데이터 사이의 중간 매개체 역할

3.데이터 : 보여줄 실제 데이터

 

main.xml

ListViewTestActivity.java

예제의 어댑터 부분을 보면 매개 변수 부분중에 android.R.layout.simple_list_item_1 부분이 있는데

우리가 res/layout 폴더안에 aaa.xml 파일을 만들면 자바코드에서 R.layout.aaa 형태로 사용이 가능하다. 마찬가지로 이미 안드로이드 sdk안에 만들어진 몇개의 xml 파일들이 있는데, 그 녀석들을 사용할때 android.R.xxx 형태로 쓰는것!
즉 위에서 사용된 android.R.layout.simple_list_item_1 이 부분은 " 안드로이드가 미리 만들어 놓은 레이아웃 중에 simple_list_item_1.xml 파일을 읽어와라" 라는 뜻이다.  

 

그외 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  항목 여러개를 선택 가능

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침