xml파일이 있을때 XmlPullPaser를 이용하여 파싱을 해보도록 하겠습니다.
연습단계라고 생각하시면 됩니다. 보통은 웹주소를 통해 xml값을 얻겠죠~?
res/xml/board.xml 파일을 생성했습니다. xml은 폴더구요
<?xml version="1.0" encoding="utf-8"?>
<board> <content name="유재석" /> <content name="박명수" /> <content name="정준하" /> <content name="정형돈" /> <content name="노홍철" /> <content name="하하" /> <content name="길" /> </board>
MainActivity.java
package com.example.android_test1; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParser; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends ListActivity { ArrayList<String> items = new ArrayList<String>(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try{ XmlPullParser parser = getResources().getXml(R.xml.board); while(parser.getEventType() != XmlPullParser.END_DOCUMENT) { if(parser.getEventType() == XmlPullParser.START_TAG) { if(parser.getName().equals("content")) { items.add(parser.getAttributeValue(0)); } } parser.next(); } }catch(Throwable t) { } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); setListAdapter(adapter); } public void onListItemClick(ListView parent, View v, int position, long id) { Toast.makeText(this, items.get(position).toString(), Toast.LENGTH_LONG ).show(); } }
String 타입의 ArrayList인items를 생성했습니다.
에러가 날 수 있는 부분은 항상 try~catch문을 사용합니다.
XmlPullParser를 통해 board.xml을 읽어서
attribute값을 읽어옵니다. 그 값을 items에 차례차례 넣는것을 반복합니다.
ListView에 값을 넣기위해 Adapter를 설정하고, 클릭시 반응할 메소드를 생성합니다.
잘 되네요~
실전은 좀 더 복잡하고 길어요~
'Programming > Android' 카테고리의 다른 글
[Android] HttpClient, HttpPost를 이용한 서버와의 통신 (37) | 2013.02.04 |
---|---|
[Android] 네트워크 비동기식 응답 핸들러 (0) | 2013.02.03 |
[Android] Thread & Handler (0) | 2013.02.03 |
[Android] 뒤로가기 버튼을 누를시 경고창 (0) | 2013.02.03 |
[Android] Intent를 이용한 데이터전달 (1) | 2013.02.03 |