본문 바로가기

Daily Sample

[Day14] Android XmlPullParser AndroDay App만들기1 소스

TITLE : Android XML XmlPullParser App 1

Date : 2010/07/23

Writen by Dayyoung

Description :

This is Source that make the App show RSS feed information by XmlPullParser.

Download Link : 

Reference Site:

 http://android-town.org

 http://blog.naver.com/skyalzza?Redirect=Log&logNo=10085247021

지난 시간에 설명한 CustomListView를 사용해 실제적으로 XML데이터를 가져오는 APP을 만들어 볼 것이다.

개인적으로 지난 한달간 블루콘APP을 만드느라 글을 못썻지만 앞으로는 열심히 쓸 계획 (또 다른 APP 작업이 생기면?)

일반적으로 스마트폰 APP에서 가장 접하기 쉬운 구조는 ListView형태라고 언급했었다.

이번 시간에 구현할 APP역시 웹상에서 XML 정보를 가져와서 ListView에 뿌려주는 가장 (가장 써먹을일이 많은) 정형적인 구조의 APP이 될 것이다.

이번 시간에 가져쓸 XML 메타정보는 RSS타잎으로 가장 만만한 Androday feed싸이트 이다.

전체 경로 : http://test.androday.com:7788/blog/?feed=rss2

Daily 태그글만 엮은 RSS  피드 :  “http://test.androday.com:7788/blog/?feed=rss2&tag=daily

2번의 엮은 글로 설명될텐데 오늘은 간단한 구조로 만드는 첫시간 !
 

1. 한줄의 Item에 대한 사용자정의를 list.xml 과 IconTextItem.java /IconTextView.java 파일로 구현한다.

 

2. BaseAdater 클래스를 상속받는 IconTextListAdapter의 GetView()가 적용된 ListView의 모습.

 

3. XML정보로부터 목록 정보를 가져오기 위해서 사용자 정의한 getXmlData(“daily”) 함수를 사용하여,

RSS목록에서 daily 라는 키워드로 목록/링크/저자 정보를 불러와 출력한다.

getXmlData(“daily”) 의 반환값 형태는 ArrayList<XmlData> 형태이고,

화면에 출력하기 위해서 이터레이터 패턴으로 가져썻다. (객체지행 자료구조)

Iterator<XmlData> it = m_xmlData.iterator();

  while (it.hasNext()) {
   // Book str = it.next();
   XmlData xmlData = it.next();
   adapter.addItem(new IconTextItem(res.getDrawable(R.drawable.arrow),
     xmlData.d_title, xmlData.d_link, xmlData.d_author));
  }


4.  각각의 ListView를 클릭했을 때의 이벤트를 구현해준다.

본 App에서는 Intent를 통해 웹뷰에 링크를 호출하게 한다.

@Override
   public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
     long arg3) {
    // TODO Auto-generated method stub
    
    IconTextItem Item = (IconTextItem) adapter.getItem(arg2);
    String[] data = Item.getData();
    
    Intent intent = new Intent (Intent.ACTION_VIEW,Uri.parse(data[1]));
    startActivity(intent);
   }


5. 오늘 샘플은 App형태로 제작하였기 때문에 해상도에 맞게 아이콘파일을 작업해서 (첨부파일)

각각의 해상도에 적합한 Drawable폴더에 넣어준다.

 

6. Icon파일이 적용된 APP 완성 !~

 

Creative Commons License
이 저작물은 크리에이티브 커먼즈 저작자표시 3.0 Unported 라이선스에 따라 이용할 수 있습니다.