안드로이드에서 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 이벤트는 태그의 택스트 영역에 문자가 존재하지 않아도 발생한다.
'안드로이드 > Android 파싱' 카테고리의 다른 글
경기버스 도착정보 조회 파싱 예제 (0) | 2018.10.05 |
---|---|
[안드로이드 스튜디오] Gson 라이브러리 사용 비교 (0) | 2017.11.13 |
[안드로이드 스튜디오] 내부 XML 파싱 - 2 (0) | 2017.05.21 |
[안드로이드 스튜디오] 내부 XML 파싱 - 1 (0) | 2017.05.21 |
안드로이드 JSON 파헤치기 (0) | 2017.04.14 |