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 정망스
,
728x90

어댑터 뷰(AdapterView)는 같은 종류의 뷰들을 특정한 방식으로 반복해서 보여주는데 적합하며,

ListView, GridView, Gallery, Spinner가 뷰 컨테이너 위젯에 속한다.

 

ListView

뷰 객체들을 수직 방향의 목록 형태로 보여준다. 수직 스크롤을 지원하며 일반적으로 목록의 각 항목은 자료를 담은 뷰이고, 사용자는 목록의 한 항목을 선택해서 일정한 작업을 수행한다.
GridView 
뷰 객체들을 고정된 개수의 열들로 이루어진 격자(Grid) 형태(2차원의 표 형태)로 배치한다. 격자의 각 칸에 이미지 아이콘이 배치되는 경우가 많으며 사용자는 한 항목을 선택해서 일정한 작업을 수행한다.
Gallery
뷰 객체들을 수평 방향의 목록 형태로 표시한다. 수평 스크롤을 지원하며 이미지를 표시하는데 흔히 쓰인다. 사용자는 한 항목을 선택해서 일정한 작업을 수행한다.
Spinner
목록을 표시한다는 면에서 리스트뷰와 용도가 동일하나 ListView는 항상 펼쳐져 있는데 비해 Spinner는 클릭할 때만 팝업으로 펼쳐진다. 흔히 콤보박스라고 부르는 컨트롤이 바로 Spinner 위젯이며 화면이 좁은 모바일 환경에서 면적을 적게 차지하는 장점이 있지만 목록을 보려면 팝업을 열어야 하는 단점이 있다.

 

모든 위젯의 공동 조상인 AdapterView는 ViewGroup으로 부터 파생되므로 어댑터 뷰는 항복에 해당하는 여러 개의 차일드 뷰를 가질 수 있다 뿐만 아니라 linear, relative 같이 배치만 담당하는 레이아웃과는 달리 사용자와 상호 작용도 처리하므로 터치나 키패드로 항목을 선택할 수도 있다.

 

위의 위젯들을 adapter View 라고 부르는 이유는 표시할 항목 데이터를 adapter 객체로부터 공급받기 때문이다. 항목의 개수는 이론적으로 무한대일 뿐만 아니라 실행 중에 목록이 바뀔 수도 있으며 데이터의 원본도 다양하다. 이런 복잡한 데이터를 위젯이 직접 처리하는것은 효율적이지 못하므로 두 객체가 협동적으로 동작한다.

adapter은 원본으로부터 얻은 데이터를 관리하며 adapterView는 adapter가 전달한 데이터를 화면에 표시한다.

위젯과 연결될 수 있는 adapter들의 계층은 아래 그림과 같다.

 

 

최상위의 Adapter 인터페이스는 AdapterView와 데이터 간의 연결을 제공하고 항목의 집합을 관리하는 기본적인 method를 선언한다.

Adapter로부터 두 개의 인터페이스가 파생되는 데 ListAdapter와 SpinnerAdapter interface이다.

 

ListAdapter : ListView와 연결에 필요한 method를 정의한다.

SpinnerAdapter : Spinner와 연결에 필요한 method를 정의한다.

둘다 인터페이스이기 때문에 method가 구현되어 있지는 않다.

추상클래스 BaseAdapter에서 위에 두 interface의 method 중 기본적인 것을 구현한다.

또 BaseAdapter의 파생 클래스가 있는데 이 클래스들은 항목의 원본이 어디인가에 따라 아래처럼 나누어진다.

 

ArrayAdapter : 객체 배열이나 리소스에 정의된 배열로부터 데이터를 가져온다.

CursorAdapter : 데이터 베이스로부터 데이터를 공급받는다.

SimpleAdapter : xml 파일의 정적인데이터를 원본으로 사용한다.

 

어떠한 경로든 Adapter는 원본에서 구한 데이터로 뷰를 만들 책임이 있으며 adapter가 제공하는 View는 AdapterView에 항복 하나로 표시된다.

728x90

'Android' 카테고리의 다른 글

안드로이드 리스트뷰 추가 삭제  (0) 2012.08.01
안드로이드 리스트 뷰  (0) 2012.08.01
안드로이드 기본 위젯  (0) 2012.07.31
안드로이드 리소스, 에셋  (0) 2012.07.31
안드로이드 메뉴  (0) 2012.07.31
Posted by 정망스
,
728x90

 

1강. 정보통신 기술의 발전과 동향.ppt

2강. 컴퓨터통신과 네트워크의 기본 이론.ppt

3강. 지역 비동기 통신 (rs232-c).ppt

4강. 원거리 직접연결 통신.ppt

5강. 패킷, 프레임, 오류발견.ppt

6강. lan의 연결구조와 공유매체접근제어.ppt

7강. lan의 주소지정과 프레임.ppt

8강. lan의 배선체계.ppt

9강. lan의 확장과 망정합장치.ppt

10강. 장거리 디지털 연결 기술.ppt

11강. wan 기술과 라우팅.ppt

12강. 네트워크의 특성.ppt

13강. 통신 프로토콜과 계층화.ppt

14강. 인터네트워킹의 기본개념.ppt

15강. ip 주소 체계.ppt

16강. arp 주소변환 프로토콜.ppt

17강. ip 데이터그램과 라우팅.ppt

18강. ip 데이터그램의 캡슗화, 단편화와 재조립.ppt

19강. 오류 보고 체계 (icmp).ppt

20강. 신뢰성 있는 통신 tcp.ppt

21강. 인터넷 통신 프로토콜의 연동.hwp

컴퓨터 네트워크 정리 ppt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'네트워크' 카테고리의 다른 글

ICMP 리다이렉트[ICMP Redirect]  (0) 2013.06.11
ARP 리다이렉트[ARP Redirect]  (1) 2013.06.11
스니핑 공격 툴[Sniff]  (0) 2013.06.11
ARP,RARP,ICMP  (0) 2013.06.11
IP 헤더 구조, IP 패킷 구조, IP 헤더 패킷 구조  (0) 2013.06.11
Posted by 정망스
,
728x90

 

 

컴구3 문제.txt

컴구3 답안.txt

순전히 제가 푼거라 답이 틀리거나 정확하지 않을수도 있으니 양해 바랍니다.

728x90

'컴퓨터구조' 카테고리의 다른 글

컴퓨터구조 예제 문제, 답안 2  (0) 2012.08.01
컴퓨터구조 예제 문제, 답안 1  (0) 2012.08.01
컴퓨터구조 단어 정리  (1) 2012.08.01
컴퓨터 구조 정리 9번째  (0) 2012.07.13
컴퓨터 구조 정리 8번째  (0) 2012.07.13
Posted by 정망스
,
728x90

 

컴구2 답.hwp

 

컴구2 문제.txt

순전히 제가 푼거라 닶이 틀리거나 정확하지 않을수도 있으니 양해 바랍니다.

728x90

'컴퓨터구조' 카테고리의 다른 글

컴퓨터구조 예제 문제, 답안 3  (2) 2012.08.01
컴퓨터구조 예제 문제, 답안 1  (0) 2012.08.01
컴퓨터구조 단어 정리  (1) 2012.08.01
컴퓨터 구조 정리 9번째  (0) 2012.07.13
컴퓨터 구조 정리 8번째  (0) 2012.07.13
Posted by 정망스
,


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