728x90

안드로이드에서 Adapter 는 선택 위젯(ListView, GridView, Gallery, Spinner 등)에 일괄된 인터페이스를 제공해 준다.

특정 데이터를 읽어들인 후 특정 선택 기능에서 사용될 항목 View 를 만들어 선택 가능 위젯에 제공하는 역할을 한다.




ListView 는 Adapter 를 사용하여 데이터를 표시하는 View 이다.


1. DataSet (XML 파일 또는 서버 DB파일)에 있는 자료를 저장할 ArrayList 를 선언한다.

    ArrayList<String> items = new ArrayList<String>();


2. 파일을 가져와서 XmlPullParser 에 넣는다.

    END_DOCUMENT(종료 태그)가 나올때 까지 반복한다.

    반복하면서 TEXT 를 추출하여 1번의 items 에 자료를 저장한다.


XmlPullParser 는 문서를 순차적으로 읽으며 이벤트를 발생시킨다.

START_DOCUMENT 이벤트는 문서의 시작을
END_DOCUMENT 은 문서의 끝을
START_TAG는 태그의 시작을 (예 : <uid> )
END_TAG는 태그의 끝을 (예 : </uid> )
TEXT는 태그의 시작과 끝 사이에서 나타난다. (예 : <uid>여기서 TEXT 이벤트 발생</uid> )

XmlPullParser는 순차적으로(한줄한줄) 문서를 읽어가면서 이벤트를 발생시키므로 뒤로 돌아가지 못하는 문제가 있다.

그래서 이를 해결하기 위해
XmlPullParser.START_TAG 이벤트가 발생하면 임시변수(String)에 Tag값을 저장하고
XmlPullParser.TEXT이벤트에서 임시변수에 저장된 Tag값을 확인하여 적절한 변수에 값을 넣어야한다.


주의 : XmlPullParser.START_TAG와 XmlPullParser.END_TAG 에서는 getName()을 사용하여야 하고 XmlPullParser.TEXT에서는 getText()를 사용하여야한다. 그렇지 않으면  null값을 반환한다.
XmlPullParser.TEXT 이벤트는 태그의 택스트 영역에 문자가 존재하지 않아도 발생한다.




728x90
블로그 이미지

Link2Me

,